- FreeBSD’nin açılış sırasında zamanın %7’sini SYSINIT’leri bubble sort ile sıralamaya harcadığı bildirildi
- Kod 1996’da yazılmıştı; o dönemde sıralanacak yaklaşık 30 SYSINIT vardı, ancak bugün sayı bini aşınca bu işlem uzun sürmeye başladı
- Yakın tarihli bir commit’te SYSINIT dizileri SLIST’e dönüştürüldü; böylece merge sort mümkün hale geldi ve yeni SYSINIT’ler eklemek de hızlandı
- Merge sort yaklaşık 100 kata kadar daha hızlı
- Firecracker baz alındığında, toplam 28 ms’lik açılış süresinde 2 ms tasarruf sağlanabiliyor
3 yorum
Belirli bir ölçeğin altındaki veri kümeleri için, küçük ve anlaşılması kolay kod kullanmak geçerli bir tercih olmuş olabilir.
Böyle kararlar yüzünden geriye kalan yavaş algoritma kullanım örnekleri hâlâ epey fazladır muhtemelen.
(Önyargı olabilir ama) böyle şeylere laf eden biri varsa, faydası olmayıp sadece şikâyeti çok olan biri olma ihtimalinin yüksek olduğunu güçlü biçimde düşünüyorum.
FreeBSD, önyükleme sırasında sürenin %7’sini SYSINIT’leri bubble sort ile sıralamaya harcıyor; bu yapı merge sort ile değiştirildi
Hacker News yorumu
bubblesortumergesortile değiştirerek önyükleme süresini önemli ölçüde iyileştirdi.bubblesortkullanımı bir hata değildi; belirli bir kullanım senaryosu onun verimsizliğini öne çıkarana kadar uzun yıllar boyunca gayet iyi çalıştı.bubblesortçalıştırarak harcıyordu.mergesorta geçiş, kodda net 5 satırlık bir azalma ve "100 kat daha hızlı" önyükleme süresi sağladı.bubblesortkullanma kararı, iş sayısı gibi etkenlerden etkilenmiş olabilir.mergesorta geçiş, küçük bir artışın genel performansta önemli bir fark yaratabileceğini gösteren bir örnek.bubblesortun bilinen verimsizliği ve sezgisellik eksikliği göz önüne alındığında başlangıçta kullanılmasını sorguluyor.bubblesortkullanımına ilişkin ilgili tartışmaları tetikledi.