Avatar ·

'कैश-फ्रेंडली' कोड का क्या मतलब है और यह C++ प्रदर्शन को कैसे प्रभावित करता है?

नमस्ते! मैं C++ सीख रहा हूँ और 'cache-friendly' शब्द पर आया हूँ। प्रदर्शन चर्चाओं में अक्सर देखता हूँ कि कोड cache-friendly होना चाहिए, लेकिन व्यवहार में इसका क्या मतलब है, यह पूरी तरह से नहीं समझता। मेरे पास एक सरल उदाहरण है। मैं 1000×1000 (int) मैट्रिक्स के साथ काम कर रहा हूँ। उन्हें जोड़ने के लिए कोड के दो विकल्प हैं: विकल्प 1: पंक्तियों के अनुसार ```cpp int sum = 0; for (int i = 0; i < 1000; ++i) for (int j = 0; j < 1000; ++j) sum += matrix[i][j]; ``` विकल्प 2: स्तंभों के अनुसार ```cpp int sum = 0; for (int j = 0; j < 1000; ++j) for (int i = 0; i < 1000; ++i) sum += matrix[i][j]; ``` पहला विकल्प मेरे कंप्यूटर पर 5–10 गुना तेज़ चलता है! मैंने पढ़ा है कि यह कैशिंग से संबंधित है, लेकिन इतना बड़ा अंतर क्यों? सामान्यतः कैसे पता करें कि कोड cache-friendly है या नहीं? और पैटर्न याद करने के बजाय जानबूझकर ऐसा कोड कैसे लिखें? उदाहरणों के साथ विस्तृत स्पष्टीकरण के लिए आभारी रहूँगा।