मेरे पास एक ऐसा एप्लिकेशन है जो हजारों वस्तुओं को बनाता है और नष्ट कर देता है। क्या यह कैशिंग और ऑब्जेक्ट्स का पुन: उपयोग करने लायक है, या डेल्फी के मेमोरी मैनेजर इतने तेज़ हैं कि ऑब्जेक्ट्स को कई बार बनाना और नष्ट करना इतना बड़ा नहीं है (कैश का ट्रैक रखने के विपरीत) जब मैं इसके लायक कहता हूं, निश्चित रूप से मैं देख रहा हूं एक प्रदर्शन बढ़ावा के लिए।क्या डेल्फी के मेमोरी मैनेजर द्वारा बनाई गई कैशिंग ऑब्जेक्ट्स के लायक है?
उत्तर
हाल के परीक्षण से - यदि वस्तु निर्माण महंगा नहीं है (यानी बाहरी संसाधनों पर निर्भर नहीं है - फ़ाइलों, रजिस्ट्री, डेटाबेस तक पहुंच ...) तो आपको डेल्फी के मेमोरी मैनेजर को मारने में कठिनाई होगी। यह तेज़ है।
यह निश्चित रूप से है कि यदि आप हाल ही में डेल्फी का उपयोग कर रहे हैं - यदि नहीं, तो SourceForge से FastMM4 प्राप्त करें और डेल्फी के आंतरिक एमएम के बजाय इसका उपयोग करें।
केवल एक प्रोफाइलर आपको बताएगा। एक तंग पाश में दोनों दृष्टिकोणों को आज़माएं और देखें कि शीर्ष पर क्या आता है :-)
मुझे लगता है कि यह आपके ऑब्जेक्ट्स को बनाने और नष्ट करने के दौरान निष्पादित कोड पर निर्भर करता है। TObject.Create और TObject से प्रभाव। डिस्ट्रॉय आमतौर पर उपेक्षित है और कैशिंग ओवरहेड द्वारा आसानी से आउटपुट हो सकता है।
आपको यह भी विचार करना चाहिए कि किसी ऑब्जेक्ट की स्थिति अलग-अलग हो सकती है जब इसे अभी बनाया जा सकता है।
अक्सर बताने का एकमात्र तरीका - इसे आजमा देना है।
यदि वर्तमान प्रदर्शन पर्याप्त है तो आपके पास प्रयास करने और इसे बढ़ाने के लिए बहुत अधिक कॉल नहीं है। हालांकि, यदि आपके पास प्रदर्शन समस्याएं हैं, तो कुछ कैशिंग (या वास्तव में कुछ अन्य रणनीतियों) मदद कर सकती हैं।
आपको कुछ आंकड़ों की भी आवश्यकता होगी कि कितनी बार एक विशिष्ट वस्तु (उदाहरण) का उपयोग किया जा रहा है। यदि आप नियमित रूप से डेटा के उसी सेट का संदर्भ दे रहे हैं, तो कैशिंग से वास्तव में प्रदर्शन में सुधार हो सकता है, लेकिन यदि एक्सेस को सभी संभावित ऑब्जेक्ट्स में वितरित किया जाता है, तो आपके कैश मिस-रेट की तुलना में यह बहुत अधिक हो सकता है।
मेमोरी आवंटन केवल कैश करना चाहते हैं इसका एक छोटा सा हिस्सा है। आपको एक अर्थात् वैध ऑब्जेक्ट बनाने की पूरी लागत जानने की आवश्यकता है, और इसकी तुलना कैश से आइटम्स को पुनर्प्राप्त करने की लागत से की जाती है, न केवल माइक्रो-बेंचमार्क के लिए: कैश प्रभाव (सीपीयू कैश, जो है) रनटाइम गतिशीलता को बदल सकता है वास्तविक लाइव चलने वाले एप्लिकेशन में।
या इसे एक और तरीका रखने के लिए, इसे मापें और पता लगाएं। यदि आप माप नहीं रहे हैं, तो आप अनुमान लगा रहे हैं, बस इंजीनियरिंग नहीं कर रहे हैं।
आपको इस तरह के सवालों के जवाब देने के लिए वास्तविक दुनिया के भारों को मापना होगा। उन वस्तुओं में संसाधनों का आयोजन करने के आधार पर, कोई भी संसाधन विवाद, निर्माण लागत, आकार इत्यादि, उत्तर आपको आश्चर्यचकित कर सकता है, और लोड की प्रकृति के आधार पर भी बदल सकता है।
आमतौर पर यह निर्धारित करना बहुत मुश्किल होता है कि आपके प्रदर्शन के मुद्दों को मापने के बिना कहां होगा।
मैं सुनता हूं कि आप क्या कह रहे हैं। मैं सिर्फ यह जानना चाहता था कि क्या इस क्षेत्र को प्रोफाइल करने पर विचार करना उचित था! – Steve
- 1. कितनी ऑब्जेक्ट्स बनाई गई हैं
- 2. ग्रहण द्वारा बनाई गई "src" निर्देशिका क्या है?
- 3. उपयोगकर्ताओं द्वारा बनाई गई नई कक्षाएं?
- 4. निकालें() Arrays.asList() के द्वारा बनाई गई सूची पर फेंकता UnsupportedOperationException
- 5. SciPy के `ttest_ind द्वारा बनाई गई मान्यताओं नीचे ट्रैकिंग()` समारोह
- 6. जॉन मैककार्थी द्वारा बनाई गई पहली LISP क्या नहीं थी?
- 7. कारखाने द्वारा बनाई गई वस्तु को कहां से हटाना है?
- 8. सर्वर द्वारा बनाई गई घटना कब मर जाती है?
- 9. कई लोगों के लिए Django द्वारा बनाई गई तालिका से सीधे पूछताछ कैसे करें?
- 10. क्या डेल्फी के लिए कोई कैशिंग फ्रेमवर्क है?
- 11. नई बनाई गई इकाई
- 12. MATLAB कंपाइलर द्वारा बनाई गई MATLAB इंजन बनाम पुस्तकालय?
- 13. .NET में बनाई गई ओपनएक्सएमएल स्प्रेडशीट आईपैड
- 14. पृष्ठभूमि से xargs द्वारा बनाई गई कमांड को भेजना
- 15. CreateProcess() द्वारा बनाई गई प्रक्रिया को कैसे समाप्त करें?
- 16. openssl द्वारा बनाई गई pycrypto हस्ताक्षर में कैसे सत्यापित करें?
- 17. क्या CreateFileMapping/MapViewOfFile शून्य द्वारा प्रारंभ की गई साझा मेमोरी सरणी प्रारंभ की गई है?
- 18. निर्दिष्ट उपयोगकर्ता द्वारा बनाई गई सभी फ़ाइलों को हटाएं
- 19. स्मृति में कितनी स्ट्रिंग ऑब्जेक्ट्स बनाई जाएंगी?
- 20. मॉनिटरिंग विंडोज मेमोरी मैप की गई फ़ाइलें
- 21. AfxBeginTread द्वारा बनाई गई थी के बाद CWinThread का मालिक कौन है?
- 22. बेसिक: सत्र आईडी कैसे बनाई गई है?
- 23. क्या विजुअल स्टूडियो में सेटअप प्रोजेक्ट द्वारा बनाई गई setup.exe फ़ाइल का कोई बिंदु है?
- 24. एंड्रॉइड रेपो स्क्रिप्ट द्वारा बनाई गई .repo/परियोजनाओं में नंगे गिट भंडार का उद्देश्य क्या है?
- 25. phpmyadmin नई बनाई गई डेटाबेस
- 26. ऑब्जेक्ट.क्रेट के साथ बनाई गई जावास्क्रिप्ट Arrays - असली Arrays नहीं?
- 27. मेमोरी या डिस्क पर "टेम्पलेट टेबल बनाएं" के साथ बनाई गई तालिकाएं हैं?
- 28. लॉग फ़ाइल नहीं बनाई गई?
- 29. कारखानों द्वारा बनाई गई वस्तुओं को क्रमबद्ध करने के लिए कैसे करें
- 30. क्या यह सभी मॉडल ऑब्जेक्ट्स के सभी कार्यों के साथ डेटाबेस मैनेजर अच्छा है?
मुझे पता है कि आप सही हैं। मैं बस सोच रहा था कि क्या इस क्षेत्र में बेंचमार्किंग करने के लायक थे या मेरे प्रयासों को कहीं और ध्यान केंद्रित करना था। डी 2009 संकलक बीटीडब्ल्यू में नई सुविधाओं के साथ अच्छा काम !! – Steve