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 की स्टैंडर्ड लाइब्रेरी में कुछ फंक्शन चिह्नित हैं