- Clang द्वारा जनरेट किए गए C code loop में optimization के अवसरों की पड़ताल करने वाला एक लेख
- loop string के characters के आधार पर किसी संख्या को बढ़ाता या घटाता है।
- लेखक null terminator के बजाय 'p' और 's' characters के लिए optimize करने हेतु loop को फिर से व्यवस्थित करता है।
- लेखक arithmetic और conditional move का उपयोग करके conditional branch को हटाता है।
- optimized code मूल code की तुलना में 6.73 गुना का उल्लेखनीय performance improvement हासिल करता है।
- लेखक अन्य optimization techniques भी आज़माता है, लेकिन पाता है कि वे code को धीमा बना देती हैं।
- benchmarking setup में AMD Ryzen 5 5625U CPU और Clang व GCC के नवीनतम versions शामिल हैं।
- निष्कर्ष यह है कि assembly में manual work और optimization कुछ विशेष मामलों में महत्वपूर्ण speedup ला सकते हैं।
1 टिप्पणियां
Hacker News की राय
sete/cmovinstructions का उपयोग करता है और optimized assembly code के समान speed हासिल कर सकता है.