अधिकांश मामलों में, एल्गोरिदम में सुधार अनुकूलन में सुधार की तुलना में एक बड़ा अंतर है। निम्न-स्तरीय अनुकूलन की तुलना में एल्गोरिदम भी अधिक पोर्टेबल हैं। मेरी सलाह है कि कैशे के पुन: उपयोग के लिए मेमोरी लेआउट के संबंध में सामान्य सर्वोत्तम प्रथाओं का पालन किया जाए, अत्यधिक प्रतियों या संचार से बचा जाए, फाइल सिस्टम को एक समझदार तरीके से व्यवहार किया जाए, और फ्लोटिंग पॉइंट कर्नेल बनाने के लिए वेक्टराइज़ेशन के लिए पर्याप्त ग्रैन्युलैरिटी हो। कभी-कभी यह "चोटी" (इस ऑपरेशन के लिए) के एक उच्च स्तर तक पहुंचने के लिए पर्याप्त है।
हमेशा संचालन के लिए एक प्रदर्शन मॉडल स्केच करें जो आपको लगता है कि महत्वपूर्ण हैं (या जिसे आप खोजते हैं वह रूपरेखा द्वारा महत्वपूर्ण है)। तब आप प्रदर्शन मॉडल का उपयोग यह अनुमान लगाने के लिए कर सकते हैं कि अत्यधिक ट्यून किए गए कार्यान्वयन क्या वितरित कर सकते हैं। यदि आप तय करते हैं कि स्पीडअप इसके लायक है (आपके द्वारा की जा रही अन्य चीजों के सापेक्ष), तो अनुकूलन करें।
शायद सबसे कठिन चुनौती उच्च-स्तरीय, महत्वपूर्ण (इस अर्थ में कि कोड का एक बहुत कुछ इन विकल्पों पर निर्भर करेगा) इंटरफेस और डेटा संरचनाएं डिजाइन कर रहा है ताकि आप एपीआई को बदलने की आवश्यकता के बिना बाद में अनुकूलन कर सकें। विशिष्ट अनुकूलन और सामान्य दिशानिर्देशों के विपरीत, मैं नहीं जानता कि अनुभव के अलावा इसे कैसे पढ़ाया जाए। प्रदर्शन-संवेदनशील ओपन सोर्स सॉफ़्टवेयर के साथ काम करने से मदद मिलती है। किसी भी एपीआई निर्णय के साथ, समस्या स्थान को समझना महत्वपूर्ण है।