मुझे हाल ही में एहसास हुआ कि मैं जंग में स्थानीय कार्यों (एक समारोह के भीतर एक समारोह) बना सकता हूं। फ़ाइल के फ़ंक्शन स्पेस को प्रदूषित किए बिना अपना कोड साफ़ करने का एक अच्छा तरीका लगता है। मैं नीचे क्या मतलब है की छोटा सा नमूना स्थानीय समारोह से एक 'बाहरी' समारोह बनाम:क्या जंग में स्थानीय कार्यों का उपयोग करने के लिए कोई नकारात्मक प्रदर्शन प्रभाव है?
fn main() {
fn local_plus(x: i64, y: i64) -> i64 {
x + y
}
let x = 2i64;
let y = 5i64;
let local_res = local_plus(x, y);
let external_res = external_plus(x,y);
assert_eq!(local_res, external_res);
}
fn external_plus(x: i64, y: i64) -> i64 {
x + y
}
मैं अगर वहाँ ऐसा करने का कोई नकारात्मक प्रदर्शन निहितार्थ है सोच रहा था? जैसा कि जंग फंक्शन को दोबारा घोषित करता है या जब भी फ़ंक्शन चलता है तो फ़ंक्शन स्पेस की कुछ अवांछित मात्रा लेता है? या क्या यह सचमुच कोई प्रदर्शन निहितार्थ नहीं है?
एक तरफ के रूप में, मैं अपने लिए जवाब कैसे प्राप्त कर सकता था (या तो दस्तावेज़ों के किसी भी विशिष्ट सेट को पढ़ने के माध्यम से, या टूलिंग का उपयोग करके) का कोई स्वागत नहीं किया जाएगा।
आप कुछ बेंचमार्क चलाकर या एमआईआर/असेंबली आउटपुट की जांच करके इसे स्वयं पा सकते हैं। – ljedrz
@ljedrz: बेंचमार्क फिकल जानवर हैं, सबसे अच्छी तरह से अप्रचलित और अनुकूलित एमआईआर/एलएलवीएम आईआर/असेंबली की जांच करें। –
@MatthieuM। सहमत - बेंचमार्क अधिक जटिल मामलों के लिए बेहतर अनुकूल हैं जहां अन्य तरीके अब व्यावहारिक नहीं हैं। – ljedrz