मैं एआरएम उपकरणों पर संवर्धित वास्तविकता के लिए सी ++ कोड विकसित कर रहा हूं और कोड की अनुकूलन के लिए एक अच्छी फ्रेम दर रखने के लिए बहुत महत्वपूर्ण है। अधिकतम स्तर पर दक्षता बढ़ाने के लिए मुझे लगता है कि सामान्य सुझावों को इकट्ठा करना महत्वपूर्ण है कि कंपाइलरों के लिए जीवन आसान बनाते हैं और कार्यक्रम के कणों की संख्या को कम करते हैं। किसी भी सुझाव का स्वागत है।सी ++ एआरएम उपकरणों पर कोड ऑप्टिमाइज़ेशन के लिए टिप्स
1- उच्च लागत निर्देश से बचें: विभाजन, वर्गमूल, पाप,
- उपयोग तार्किक बदलाव क्योंकि विभाजित या जब संभव उलटा द्वारा 2.
- गुणा से गुणा करने के लिए।
2- अनुकूलन भीतरी "के लिए" लूप: वे एक botleneck तो हम अंदर विशेष रूप से विभाजन, वर्ग जड़ों कई गणना करने, से बचना चाहिए रहे हैं ..
3 उपयोग लुक-अप टेबल कुछ गणितीय कार्य (sin, cos, ...)
उपयोगी उपकरणों के लिए
- objdump: संकलित कार्यक्रम के असेंबली कोड हो जाता है। यह दो कार्यों की तुलना करने की अनुमति देता है और जांचता है कि यह वास्तव में अनुकूलित है या नहीं।
** खबरदार **: आजकल टोंटी स्मृति अधिक बार नहीं है (और इसलिए इस lut इतना महान नहीं कर रहे हैं ...)। यह एआरएम पर भरोसा कर सकता है, स्वीकार्य रूप से, लेकिन ... बेहतर जांच करें कि कुछ भी नहीं निवेश करें। –
हाँ। लेकिन रीयल-टाइम अनुप्रयोगों में, प्रति फ्रेम की बहुत सारी गणनाएं करते हैं, मेरा मानना है कि अनुकूलन "प्रति सेकंड कुछ फ्रेम" को बचा सकता है। कहें "कुछ" 8fps हैं, मेरे मामले के साथ, यही कारण है कि मुझे लगता है कि यह सवाल महत्वपूर्ण है। –
क्या आपके पास विभिन्न मीट्रिक जांचने की संभावना है, जैसे कैश मिस, मेमोरी बस एक्सेस इत्यादि? यह जानना भी बहुत उपयोगी है कि आपकी मेम बस एक बाधा है या नहीं। बीटीडब्ल्यू, ऑफ-विषय, (डोनोस्टिया == सैन सेबेस्टियन)? यदि हां, तो मुझे वास्तव में वह शहर पसंद है! – Brady