- Clang tarafından üretilen C kodu döngüsündeki optimizasyon fırsatlarını inceleyen bir yazı
- Döngü, dizgedeki karakterlere göre bir sayıyı artırıyor veya azaltıyor.
- Yazar, null sonlandırıcı yerine
'p' ve 's' karakterlerine göre optimize etmek için döngüyü yeniden düzenliyor.
- Yazar, koşullu dallanmayı kaldırmak için aritmetik ve koşullu taşıma kullanıyor.
- Optimize edilmiş kod, özgün koda kıyasla 6,73 katlık kayda değer bir hız artışı sağlıyor.
- Yazar ayrıca başka optimizasyon tekniklerini de deniyor, ancak bunların kodu yavaşlattığını görüyor.
- Benchmark kurulumu AMD Ryzen 5 5625U CPU ile Clang ve GCC'nin en güncel sürümlerini içeriyor.
- Sonuç olarak, assembly düzeyinde elle yapılan çalışma ve optimizasyonun belirli durumlarda önemli hız artışları sağlayabileceği belirtiliyor.
1 yorum
Hacker News yorumu
switchifadesi yerineififadeleri kullanılarak optimize edilebilir.sete/cmovkomutlarını kullanır ve optimize edilmiş assembly koduyla aynı hıza ulaşabilir.