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