गति तुलना - व्याख्यात्मक भाषाओं में प्रक्रियात्मक बनाम ओओ

व्याख्यात्मक प्रोग्रामिंग भाषाओं में, जैसे PHP और जावास्क्रिप्ट, एक प्रक्रियात्मक दृष्टिकोण पर ऑब्जेक्ट ओरिएंटेड दृष्टिकोण के साथ जाने का क्या असर पड़ता है?

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

निचली पंक्ति: कितनी बड़ी (यदि कोई है) वास्तव में प्रदर्शन किया जाता है, जब ओओ बनाम प्रक्रिया के साथ एक व्याख्या की गई भाषा में प्रक्रिया होती है?

0
जोड़ा संपादित
विचारों: 1

7 उत्तर

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

जब आपने 'रखरखाव' कहा था तो आपने सिर पर नाखून मारा। मैं उस दृष्टिकोण का चयन करूंगा जो सबसे अधिक उत्पादक और सबसे अधिक रखरखाव योग्य है। यदि आपको बाद में गति की आवश्यकता है, तो यह एक व्याख्या की गई भाषा के अंदर प्रक्रियात्मक बनाम ऑब्जेक्ट उन्मुख कोडिंग प्रतिमानों के बीच स्विच करने से नहीं आ रहा है।

0
जोड़ा
मैं नरक से मालिक था। वह प्रोग्रामिंग के बारे में कुछ भी नहीं जानता था, लेकिन सोचा कि वह सब कुछ जानता था (उसने मुझे यूनिक्स टाइमस्टैम्प पर एक बार व्याख्यान दिया, मुझे यह बताते हुए, "यूनिक्स टाइमस्टैम्प यूरोपीय टाइमस्टैम्प की तरह हैं। वे इसे अजीब करते हैं, उन्होंने दिन पहले और फिर इस महीने को रखा: डीडी / मिमी / yyyy "आरओएफएल, क्या बेवकूफ है)। तो जब उसे पता चला कि मैं ओओ PHP कर रहा था, तो वह बाहर निकल गया और कहा कि यह "हमारी साइट को धीमा कर देगा"। मैं किसी भी तरह के अध्ययन की तलाश में था, यह साबित करने के लिए कि वह उससे भरा था ताकि मैं प्रोग्रामिंग ओओ जारी रख सकूं ...
जोड़ा लेखक cmcculloh, स्रोत
एक clientsfromhell.net की तरह लगता है
जोड़ा लेखक Xeoncross, स्रोत
ओओपी कम उत्पादक और कम रखरखाव योग्य है।
जोड़ा लेखक Pablo Ariel, स्रोत

निचली पंक्ति: नहीं, क्योंकि व्याख्या के ऊपरी हिस्से में विधि प्रेषण के ऊपरी हिस्से को खत्म कर दिया गया है।

0
जोड़ा

यदि आप एक व्याख्या की गई भाषा का उपयोग कर रहे हैं, तो अंतर अप्रासंगिक है। यदि प्रदर्शन एक मुद्दा है तो आपको एक व्याख्या की गई भाषा का उपयोग नहीं करना चाहिए। दोनों इसके बारे में प्रदर्शन करेंगे।

0
जोड़ा

मैंने वास्तव में एक वेबसाइट पर पाइथन में एक छोटा परीक्षण किया है जिसे मैंने बनाए रखा है और पाया है कि वे गति में लगभग बराबर हैं, प्रक्रियात्मक दृष्टिकोण एक दूसरे के दस हज़ारवां की तरह जीतने के साथ, लेकिन ओओ कोड इतना महत्वपूर्ण था क्लीनर मैंने अभ्यास को एक पुनरावृत्ति से अधिक समय तक जारी नहीं रखा।

तो वास्तव में, इससे कोई फर्क नहीं पड़ता (वैसे भी मेरे अनुभव में)।

0
जोड़ा

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

बस अनुकूलन के पहले नियम को याद रखें।

मत करो।

:)

0
जोड़ा

दुर्भाग्य से, मैंने भी अपने परीक्षण किए हैं। मैंने परीक्षण की गति की, और यह वही है, लेकिन PHP में स्मृति_get_usage() को स्मृति उपयोग के लिए परीक्षण करते समय, मैंने ओओपी पक्ष पर भारी संख्या में देखा।

प्रक्रिया के लिए ओओपी के लिए 116,576 बाइट 18,856 बाइट्स तक। मुझे पता है "हार्डवेयर सस्ता है", लेकिन चलो! उपयोग में 1,000% की वृद्धि? क्षमा करें, यह इष्टतम नहीं है। और एक बार में आपकी वेबसाइट पर कई उपयोगकर्ताओं को मारने के बाद, मुझे यकीन है कि आपकी रैम बस जलाएगी, या बाहर चली जाएगी। क्या मै गलत हु?

0
जोड़ा

मेरे अनुभव में, भारी भार के तहत एक साइट को दबाया जाएगा और प्रक्रियात्मक से ओओपी कोड के साथ अधिक आसानी से उत्तरदायी बन जाएगा। कारण समझना आसान है।

ओओपी को प्रक्रियात्मक कोड की तुलना में स्मृति में चलाने के लिए बहुत अधिक स्मृति आवंटन (MALLOC) और बहुत अधिक संचालन की आवश्यकता होती है। इसके कार्यों को करने के लिए इसे बहुत अधिक CPU समय की आवश्यकता होती है। यह अनिवार्य रूप से 'ओवरहेड' है, जो प्रक्रियात्मक कोड के चारों ओर लपेटा जाता है, सीपीयू बोझ को निष्पादित करने के लिए जोड़ता है, खासकर डेटाबेस संचालन करते समय।

ओओपी की सुविधा जैसे कई प्रोग्रामर, सरल इंटरफेस के पीछे छिपे हुए छोटे काले बक्से बनाते हैं। हालांकि, मुझे उन साइटों को पुनर्जीवित करने के लिए अच्छी तरह से भुगतान किया गया है जो भारी उपयोगकर्ता लोड के तहत जवाब देने के लिए हमेशा के लिए ले रहे थे। ओओपी को बाहर निकालना और इसे सरल प्रक्रियात्मक कार्यों के साथ बदलना एक बड़ा अंतर बना।

यदि आप अपनी साइट को बहुत व्यस्त होने की उम्मीद नहीं करते हैं, तो हर तरह से ओओपी का उपयोग करें। यदि आप एक उच्च ट्रैफिक सिस्टम बना रहे हैं, तो आप प्रसंस्करण और हर बाइट को आउटपुट से प्रत्येक सीपीयू चक्र को पट्टी करना चाहते हैं।

0
जोड़ा