आर

2010-02-03 12 views
12

में निष्पादन क्षमता बनाम प्रोग्रामर क्षमता क्लासिक और शानदार प्रोग्रामिंग पर्ल संदर्भ पुस्तक में एक अनुभाग है जिसमें लेखक पेर्ल लिखने के लिए सलाह की एक सूची प्रदान करते हैं जो अधिकतम कम्प्यूटेशनल रूप से कुशल है, इसके बाद सलाह की एक सूची पर्ल लिखने के लिए कैसे है कि अधिकतम प्रोग्रामर कुशल है, मेंटेनर कुशल, कुली कुशल, और उपयोगकर्ता कुशलके लिए और अधिक सलाह के बाद। सलाह आमतौर पर पूरी तरह से विरोधाभासी है। (उदा।, "ग्लोबल्स का उपयोग करें", "ग्लोबल्स का उपयोग न करें।")आर

मैंने कुछ "प्रोग्रामर कुशल" आर कोड को "कम्प्यूटेशनल और रखरखाव कुशल" कोड में बदलने पर काम करते हुए इस बारे में सोचा।

इन पंक्तियों के साथ आर शैली के लिए कुछ रोचक और उपयोगी टिप्स क्या हैं? कौन से अभ्यास अधिकतम प्रोग्रामर कुशल हैं, और समकक्ष प्रथाओं के अन्य विचारों को संबोधित करने वाले समकक्ष प्रथाएं क्या हैं?

+0

याद रखें उपयोगकर्ताओं कितनी तेजी से आवेदन काम करता है, नहीं आप कितनी तेजी से निर्माण या इसे बनाए रख सकते हैं, यह पिछले कुछ वर्षों खो दिया जा रहा है के बारे में केवल परवाह करेंगे जब लोग प्रोग्रामर दक्षता सब कुछ श्रेष्ठ माना जाता सोचने के लिए लग रहे हैं । मेरा विश्वास करो, यह उपयोगकर्ताओं के लिए नहीं है। अगर सलाह विरोधाभासी है, तो उस सलाह के साथ जाएं जो प्रभावशाली ढंग से प्रदर्शन करने वाले कोड का उत्पादन करने के लिए सबसे अधिक पसंद है, जो लिखने के लिए सबसे तेज़ होगा। – HLGEM

+0

@ एचएलजीईएम: उपयोगकर्ता भी एप्लिकेशन को तेजी से प्राप्त करने की देखभाल करते हैं, और उन्हें क्या खर्च होता है, और कभी-कभी उन्हें जो भी चाहिए, उसे संशोधित किया जा सकता है। अधिकांश ऐप्स के लिए, कम्प्यूटेशनल अक्षमता अप्रासंगिक है। यहां तक ​​कि आर-प्रकार के ऐप्स के लिए, कम्प्यूटेशनल पावर प्रोग्रामर उत्पादकता की तुलना में कहीं अधिक तेज़ी से बढ़ रहा है, और इसलिए बैलेंस पॉइंट प्रोग्रामर उत्पादकता के मूल्यांकन की दिशा में आगे बढ़ता है। –

+2

मुझे लगता है कि @ एचएलजीईएम की टिप्पणी डेस्कटॉप या वेब ऐप्स के लिए बहुत उपयुक्त है जो सामान्य उद्देश्य और व्यापक दर्शक हैं। हालांकि, आर में जो कुछ लिखा गया है, वह डोमेन विशिष्ट है और विश्लेषक के वर्कबेंच के हिस्से के रूप में उपयोग किया जाता है। मुझे संदेह है कि यह अलग-अलग उपयोग केस मूल रूप से मामूली मूल्य गणना को बदलता है। –

उत्तर

1

मुझे लगता है कि स्टाइल दिशानिर्देश (एसओ पर पहले चर्चा की गई) प्रोग्रामर दक्षता के लिए मदद करते हैं। आर कोर कुछ संकेत प्रदान करके सहमत हैं (और लगातार इंडेंटिंग के लिए Emacs पैरामीटर)।

निष्पादन दक्षता डिक्री द्वारा हासिल करना अधिक कठिन है। आपको अंगूठे ('वेक्टरिस') के साथ-साथ प्रोफाइलिंग के नियमों में भी पड़ना पड़ सकता है।

2

धीमा होने पर आप क्या गिन सकते हैं कुछ भी है, एक लूप में, डेटा को पुनर्निर्माण, जैसे वेक्टर में तत्व जोड़ने, यदि यह बहुत किया जाता है।

19
Programmer efficient     | Computationally efficient 
            | 
Write everything in R    | Call C/Fortran routines 
Reuse code       | Custom create everything 
    (functions not scripts,   | 
    packages not individual functions) | 
Use high level functions    | Use low-level functions 
Write things that work    | Write it, profile it, optimise it. 
            |  Repeat ad infinitum. 
+0

इस तरह के कुछ और उदाहरण देखना पसंद करेंगे, खासकर अधिक जानकारी के साथ! – Harlan