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