- Artikel yang mengeksplorasi peluang optimasi loop kode C yang dihasilkan oleh Clang
- Loop tersebut menambah atau mengurangi angka berdasarkan karakter dalam string.
- Penulis menata ulang loop untuk mengoptimalkannya terhadap karakter 'p' dan 's', alih-alih terminator null.
- Penulis menghapus percabangan kondisi dengan menggunakan aritmetika dan perpindahan kondisional.
- Kode yang telah dioptimalkan mencapai peningkatan kecepatan yang signifikan, 6,73 kali lebih cepat dibandingkan kode asli.
- Penulis juga mencoba teknik optimasi lain, tetapi menemukan bahwa teknik tersebut justru memperlambat kode.
- Pengaturan benchmark mencakup CPU AMD Ryzen 5 5625U serta versi terbaru Clang dan GCC.
- Kesimpulannya, pengerjaan manual dan optimasi di assembly dapat menghasilkan peningkatan kecepatan yang besar dalam kasus tertentu.
1 komentar
Komentar Hacker News
ifalih-alih pernyataanswitch.sete/cmovtanpa percabangan dan dapat mencapai kecepatan yang sama dengan kode assembly yang sudah dioptimalkan.