मैंने निम्नलिखित दो पंक्तियों को अपने शीर्ष पर जोड़ा init.el
:
(setq gc-cons-threshold (eval-when-compile (* 1024 1024 1024)))
(run-with-idle-timer 2 t (lambda () (garbage-collect)))
इसका मतलब है कि आवंटित मेमोरी के प्रत्येक 800kb पर कचरा इकट्ठा करने के बजाय, Emacs ऐसा तब करता है, जब बेकार हो जाता है, अर्थात जब ठहराव मुझे परेशान नहीं करता है। (यह 1GB मेमोरी आवंटित करने के बाद भी इकट्ठा होता है, लेकिन मुझे नहीं लगता कि ऐसा होगा)।
इससे मेरे स्टार्टअप का समय लगभग दो तिहाई बढ़ गया। सिद्धांत रूप में, इसे सामान्य रूप से प्रदर्शन में भी सुधार करना चाहिए। क्या इस दृष्टिकोण में कोई कमी है?
(eval-when-compile (* 1024 1024 1024))
साथ प्रतिस्थापित कर सकते हैं most-positive-fixnum
(कृपया ऐसा करें, मुझे पूरा यकीन है कि हर कोई जो आपके प्रश्न पर आता है, आपके कोड को उनके कॉन्फ़िगरेशन में कॉपी करता है) ।
gc-cons-threshold
आप की तुलना में किसी भी उच्च रहे हैं तैयार वास्तव में किसी भी समय पर हिट करने के लिए है, क्योंकि आप चाहिए ग्रहण करने के लिए है कि आप होगा वास्तव में है कि मूल्य समय-समय पर (हिट सब के बाद, जो जानता है कि कितना कचरा उपार्जित किया जा सकता है कुछ अप्रत्याशित रूप से उत्साही गैर-निष्क्रिय कार्य)। मुझे निष्क्रिय टाइमर के साथ जीसी ट्रिगर करने में कोई विशेष समस्या नहीं दिखती है, लेकिन मुझे लगता है कि गैर-निष्क्रिय जीसी के लिए दहलीज को सेट करना उतना ही उच्च है जितना कि ओटीटी लगता है, और मेरी धारणा यह है कि मूल्य संभवतः "से अधिक" होने के रूप में चुना गया था। "मुझे कभी भी ज़रूरत होगी" के बजाय "उच्चतम मैं उपयोग करने के लिए तैयार हूं"।