दो अलग-अलग loops में element-wise addition एक संयुक्त loop की तुलना में बहुत तेज़ क्यों चलता है?
नमस्ते सहयोगियों! मैं कई वर्षों से C++ में लिख रहा हूँ, लेकिन हाल ही में मुझे एक बहुत ही अजीब प्रदर्शन व्यवहार मिला जिसे मैं समझा नहीं पा रहा हूँ।
मेरे पास दो arrays हैं: `a` और `b` प्रत्येक 20 मिलियन तत्वों के आकार के। मैं पहले उन्हें element-wise जोड़ना चाहता हूँ और परिणाम array `c` में लिखना चाहता हूँ, फिर array `c` के तत्वों को array `d` के साथ जोड़कर array `e` में लिखना चाहता हूँ। मैंने कोड के दो संस्करण लिखे: पहला दो अलग-अलग loops के साथ, दूसरा एक संयुक्त loop के साथ।
यहाँ कोड है:
```cpp
#include
#include
#include
const size_t N = 20000000;
int main() {
std::vector a(N, 1);
std::vector b(N, 2);
std::vector c(N);
std::vector d(N, 3);
std::vector e(N);
// विकल्प 1: दो अलग-अलग loops
auto start1 = std::chrono::high_resolution_clock::now();
for (size_t i = 0; i < N; ++i) {
c[i] = a[i] + b[i];
}
for (size_t i = 0; i < N; ++i) {
e[i] = c[i] + d[i];
```