GCC -Os (आकार के लिए अनुकूलन) पर -O2 (गति के लिए अनुकूलन) की तुलना में 15-20% तेज़ कोड क्यों उत्पन्न करता है?
सभी को नमस्ते! मैं C++ में नया हूँ और GCC अनुकूलन flags को समझने की कोशिश कर रहा हूँ। मेरे पास एक छोटा इमेज प्रोसेसिंग प्रोग्राम है: मैं पिक्सेल मैट्रिक्स (आकार 4096x4096) पर Gaussian फ़िल्टर लगा रहा हूँ। मैं इसे अलग-अलग flags के साथ compile करता हूँ और execution time मापता हूँ। उम्मीद के मुताबिक, -O2, -O0 की तुलना में बेहतर प्रदर्शन देता है। लेकिन मैंने एक अजीब बात देखी: -Os flag (कोड आकार के लिए अनुकूलन) के साथ प्रोग्राम -O2 (गति के लिए अनुकूलन) की तुलना में 15-20% तेज़ चलता है! यहाँ सरलीकृत कोड है:\n\n```cpp\n#include \n#include \n#include \n\nvoid gaussian_blur(const std::vector& src, std::vector& dst, int width, int height) {\n const float kernel[5] = {0.0545, 0.2442, 0.4026, 0.2442, 0.0545};\n for (int y = 0; y < height; ++y) {\n for (int x = 0; x < width; ++x) {