FreeBSD ने SYSINIT के bubble sort को merge sort में बदला
(twitter.com/cperciva)- यह रिपोर्ट मिली थी कि FreeBSD boot के समय 7% समय SYSINIT को bubble sort करने में खर्च करता है
- यह कोड 1996 में लिखा गया था, और उस समय sort करने के लिए लगभग 30 SYSINIT थे, लेकिन अब उनकी संख्या 1000 से अधिक हो गई है, इसलिए इसमें ज़्यादा समय लगने लगा
- हाल की commit में SYSINIT arrays को SLIST में बदला गया, जिससे merge sort संभव हो गया और नए SYSINIT जोड़ना भी तेज़ हो गया
- merge sort लगभग ~100 गुना तक तेज़ है
- Firecracker के आधार पर, कुल 28ms boot समय में से 2ms बचाए जा सकते हैं
3 टिप्पणियां
एक निश्चित आकार से छोटे datasets के लिए, छोटे और समझने में आसान code का उपयोग करना शायद प्रभावी रहा होगा.
ऐसे फ़ैसलों की वजह से बचे हुए धीमे algorithm के इस्तेमाल के कई उदाहरण आज भी होंगे.
(यह मेरा पूर्वाग्रह है, लेकिन) अगर कोई ऐसी बातों पर आपत्ति उठाता है, तो मुझे काफ़ी मज़बूती से लगता है कि वह शायद ऐसा व्यक्ति होगा जो मदद तो नहीं करता, लेकिन शिकायतें बहुत करता है.
FreeBSD बूट के समय 7% समय SYSINITs को bubble sort करने में खर्च करता है
Hacker News टिप्पणियाँ