मेरे पास एक काफी जटिल जावास्क्रिप्ट ऐप है, जिसमें एक मुख्य लूप है जिसे प्रति सेकंड 60 बार कहा जाता है। ऐसा लगता है कि बहुत अधिक कचरा संग्रह हो रहा है (क्रोम देव उपकरणों में मेमोरी टाइमलाइन से 'sawtooth' आउटपुट के आधार पर) - और यह अक्सर एप्लिकेशन के प्रदर्शन को प्रभावित करता है।
इसलिए, मैं उस काम की मात्रा को कम करने के लिए सर्वोत्तम प्रथाओं पर शोध करने की कोशिश कर रहा हूं जो कचरा कलेक्टर को करना है। (अधिकांश जानकारी जो मैंने वेब पर पाया है, मेमोरी लीक से बचने के संबंध में, जो थोड़ा अलग सवाल है - मेरी मेमोरी को मुक्त किया जा रहा है, यह सिर्फ इतना है कि बहुत अधिक कचरा संग्रह हो रहा है।) मैं मान रहा हूं। यह ज्यादातर संभव के रूप में वस्तुओं का पुन: उपयोग करने के लिए नीचे आता है, लेकिन निश्चित रूप से शैतान विवरण में है।
ऐप को जॉन रेजिग के सिंपल जावास्क्रिप्ट इनहेरिटेंस की तर्ज पर 'क्लासेस' में संरचित किया गया है ।
मुझे लगता है कि एक मुद्दा यह है कि कुछ कार्यों को प्रति सेकंड हजारों बार कहा जा सकता है (जैसा कि वे मुख्य लूप के प्रत्येक पुनरावृत्ति के दौरान सैकड़ों बार उपयोग किया जाता है), और शायद इन कार्यों में स्थानीय कामकाजी चर (तार, सरणियां, आदि) मुद्दा हो सकता है।
मैं बड़ी / भारी वस्तुओं के लिए ऑब्जेक्ट पूलिंग के बारे में जानता हूं (और हम इसे एक हद तक उपयोग करते हैं), लेकिन मैं उन तकनीकों की तलाश कर रहा हूं जो बोर्ड भर में लागू हो सकते हैं, विशेष रूप से उन कार्यों से संबंधित हैं जिन्हें तंग छोरों में बहुत बार कहा जाता है ।
कचरा बीनने वाले को काम की मात्रा कम करने के लिए मैं किन तकनीकों का उपयोग कर सकता हूं?
और, शायद यह भी - कि किन वस्तुओं को कचरा एकत्र करने के लिए सबसे अधिक एकत्र किया जा रहा है, इसकी पहचान करने के लिए कौन सी तकनीक नियोजित की जा सकती है? (यह एक बहुत बड़ा कोडबेस है, इसलिए ढेर के स्नैपशॉट की तुलना बहुत उपयोगी नहीं है)
