1 पॉइंट द्वारा GN⁺ 2023-07-07 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • 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 टिप्पणियां

 
GN⁺ 2023-07-07
Hacker News की राय
  • मूल कोड को switch statement की जगह if statement का उपयोग करके optimize किया जा सकता है.
  • कोड का एक दूसरा optimized version branchless sete/cmov instructions का उपयोग करता है और optimized assembly code के समान speed हासिल कर सकता है.
  • vectorized code version, अगर संभव हो, तो AVX-512 instructions का उपयोग करके और तेज हो सकता है.
  • अलग-अलग processors में branching के अनुसार performance characteristics अलग हो सकती हैं.
  • C भाषा को मूल रूप से system-level code को platforms के बीच आसानी से translate करने के लिए design किया गया था, और इसके लिए इसने कुछ features की कुर्बानी दी थी.