क्या OpenDAL Python binding Python से धीमी है?
- OpenDAL एक data access layer है जो विभिन्न storage services से डेटा को कुशलता से प्राप्त करने में मदद करती है।
- ऐसी रिपोर्टें हैं कि OpenDAL की Python binding, Python खुद से भी धीमी है।
- यह परिकल्पना दी गई है कि इसके कारण Python का internal cache, file read acceleration, और PyO3 का अतिरिक्त overhead हो सकते हैं।
क्या OpenDAL Fs service Python से धीमी है?
- यह Rust, OpenDAL, Python, PyO3 जैसे कई तत्वों से जुड़ी समस्या है।
- पाया गया कि Rust में implemented OpenDAL fs service भी Python से धीमी है।
क्या Rust std fs Python से धीमा है?
- OpenDAL,
std::fsके माध्यम से fs service को implement करता है। - यह पुष्टि हुई कि Rust के
std::fsका उपयोग करने वाला implementation भी Python से धीमा है।
क्या Rust std fs Python से धीमा है? सच में!?
- इस परिणाम पर सवाल उठाया गया कि Rust std fs, Python से धीमा है।
straceका उपयोग करके system call analysis करना सीखा गया।straceके परिणामों के विश्लेषण के बाद भी, दोनों केmmapका उपयोग करने के बावजूद Python तेज क्यों है, इसका कारण नहीं मिल पाया।
यहाँ mmap का उपयोग क्यों किया जाता है?
mmapका उपयोग सिर्फ फाइल को memory में map करने के लिए नहीं, बल्कि बड़े memory regions allocate करने के लिए भी होता है।mallocसे memory मांगने परglibc,mmapका उपयोग करके memory allocate करता है।
क्या Python, Rust जैसा ही memory allocator रखता है?
- Python,
pymallocनाम का memory allocator उपयोग करता है, जो छोटे allocations के लिए optimized है। pymallocछोटे objects के लिए optimized है, और बड़े allocations के लिएPyMem_RawMalloc()औरPyMem_RawRealloc()का उपयोग करता है।
क्या Rust default memory allocator के साथ Python से धीमा है?
- संदेह है कि
mmapही समस्या पैदा कर रहा है। - पाया गया कि
jemallocपर स्विच करने के बाद Rust प्रोग्राम Python से तेज चलने लगा।
क्या Rust सिर्फ मेरे कंप्यूटर पर Python से धीमा है!
- Rust का Python से धीमा चलना केवल एक खास कंप्यूटर पर ही हो रहा था।
- CPU और memory के बारे में विस्तृत जानकारी दी गई है।
- CPU vulnerability mitigation features, Transparent Hugepage, और CPU core affinity को समायोजित करने पर भी परिणाम में कोई बदलाव नहीं आया।
- eBPF प्रोग्राम का उपयोग करके यह पुष्टि की गई कि system call स्तर पर भी Rust, Python से धीमा था।
क्या C Python से धीमा है?
- पाया गया कि C में implement किया गया version भी Python से धीमा है।
क्या C Python से धीमा है? बिना निर्दिष्ट offset के!
- memory region offset में अंतर पाया गया, और offset को समायोजित करके C प्रोग्राम की गति में सुधार किया गया।
- यह पुष्टि हुई कि AMD Ryzen CPU पर खास offset के बिना performance degradation होता है।
क्या AMD Ryzen 9 5900X बिना निर्दिष्ट offset के धीमा है!
- यह पुष्टि हुई कि यह CPU से जुड़ी समस्या है, और kernel developer भी चर्चा में शामिल हुआ।
perfका उपयोग करके profiling में फिर पुष्टि हुई कि offset के बिना performance degradation होता है।
GN⁺ की राय: इस लेख का सबसे महत्वपूर्ण बिंदु यह है कि खास hardware environment में Rust और C, Python से धीमे चल सकते हैं, और इसका कारण memory allocation तथा CPU के कुछ विशेष व्यवहार हो सकते हैं। यह लेख software performance को प्रभावित करने वाले विभिन्न तत्वों की पड़ताल के जरिए दिखाता है कि hardware और software के बीच की interaction कितनी जटिल हो सकती है। ऐसी पड़ताल software engineering की दुनिया में उभरने वाली अप्रत्याशित समस्याओं को सुलझाने के लिए महत्वपूर्ण सीख देती है।
1 टिप्पणियां
Hacker News राय
उलझाने वाले आधार-मान्यताओं पर राय
CPU feature flags पर चर्चा
संबंधित glibc bug link
लेख पर सकारात्मक प्रतिक्रिया
लेख की बहुत सराहना
समस्या समाधान के लिए सुझाव
Rust के default allocator की जानकारी
performance सुधार के लिए Rust developers की विचारणीय बातें
AMD और Intel के CPU अंतर की व्याख्या
लेख को सही लोगों तक पहुँचाने की बात