Rust में `#[inline]` एट्रीब्यूट का उपयोग कब और क्यों करें? क्या इसकी वास्तव में आवश्यकता है?
सभी को नमस्ते! मैं Rust में नया हूँ और ऑप्टिमाइज़ेशन को समझने की कोशिश कर रहा हूँ। मैंने पढ़ा है कि C/C++ में `inline` कीवर्ड फंक्शन कॉल को उसके बॉडी से बदलकर कोड को तेज़ कर सकता है। Rust में भी `#[inline]` एट्रीब्यूट है, लेकिन मैं पूरी तरह से नहीं समझ पाया कि इसका उपयोग कब करना चाहिए।
मैंने दो संख्याओं को जोड़ने के लिए एक सरल फंक्शन लिखा:
```rust
fn add(a: i32, b: i32) -> i32 {
a + b
}
```
और दूसरा फंक्शन जो इसे लूप में कॉल करता है:
```rust
fn sum_squares(n: i32) -> i32 {
let mut sum = 0;
for i in 0..n {
sum += add(i, i);
}
sum
}
```
अगर मैं `add` में `#[inline(always)]` जोड़ दूं, तो क्या इसका कोई मतलब होगा? क्या कंपाइलर खुद से यह नहीं समझेगा? या फिर, बाइनरी का साइज़ कम करने के लिए `#[inline(never)]` उपयोगी हो सकता है?
मैंने देखा है कि Rust की स्टैंडर्ड लाइब्रेरी में कुछ फंक्शन पर