Avatar ·

240+ तत्वों वाली सरणी पर लूप Rust में 10 गुना धीमा क्यों चलता है?

नमस्ते, सहयोगियों! मैं Rust सीख रहा हूँ और सरणियों को iterating करते समय एक अजीब प्रदर्शन समस्या का सामना किया। मैंने एक सरल benchmark लिखा जो `for` लूप में सरणी के तत्वों का योग करता है। 240 तत्वों से छोटी सरणियों के लिए कोड बहुत तेज़ चलता है, लेकिन जैसे ही आकार 240 या उससे अधिक होता है, प्रदर्शन तेजी से गिरता है — लगभग 10 गुना। यहाँ मेरा कोड है: ```rust fn sum_array(arr: &[i32]) -> i32 { let mut sum = 0; for &x in arr { sum += x; } sum } fn main() { let size = 240; let arr: Vec = (0..size).collect(); let start = std::time::Instant::now(); let result = sum_array(&arr); let duration = start.elapsed(); println!("Sum: {}, Time: {:?}", result, duration); } ``` मैंने `size` को 239 से 240 में बदलने की कोशिश की, और अंतर बहुत बड़ा है। पहले मैंने सोचा कि यह CPU cache से संबंधित है, लेकिन तब गिरावट क्रमिक होनी चाहिए, अचानक नहीं। मैं Rust 1.75 का उपयोग कर रहा हूँ, `--release` के साथ compile करता हूँ। शायद यह LLVM बग है?