मैं एक बहुत ही धीमी Emacs का कैसे निवारण कर सकता हूं?


41

मैं एक दस्तावेज लिख रहा हूं और मुझे Emacs के प्रदर्शन के साथ एक समस्या है जो मुझे लगता है कि कल ही दिखाई दी थी। मैंने अपनी इनिट फ़ाइल में कोई परिवर्तन नहीं किया है या कोई नया पैकेज स्थापित नहीं किया है।

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

मुझे नहीं पता कि टाइपिंग की गति को छोड़कर अन्य मुद्दे हैं (मैं केवल अनुमान लगा सकता हूं कि वहां हैं) लेकिन मैंने उन पर ध्यान नहीं दिया है।

इस समस्या का कारण क्या हो सकता है?
यह Emacs के कारण होता है या यह मेरे पीसी के प्रदर्शन के कारण होता है? आम तौर पर वे कौन से चर हैं जो Emacs के प्रदर्शन को प्रभावित करते हैं?

मेरा Emacs का संस्करण GNU Emacs 24.3.1 है

प्रमुख सक्रिय मोड है:

  1. LaTeX

और मामूली सक्रिय मोड हैं:

  1. स्वत: पूर्ण
  2. स्वत: संरचना
  3. स्वत: संपीड़न
  4. स्वत: एन्क्रिप्शन
  5. ब्लिंक कर्सर
  6. फ़ाइल-नाम-छाया
  7. फ़ॉन्ट-लॉक
  8. ग्लोबल-स्वत: पूर्ण
  9. ग्लोबल-फॉन्ट-लॉक ग्लोबल-एचएल-लाइन
  10. रेखा संख्या
  11. माउस व्हील
  12. शैल-Dirtrack
  13. शो-Paren
  14. Smartparens
  15. Smartparens-ग्लोबल
  16. टूलटिप ट्रांसिएंट-मार्क

5
C-h mप्रमुख मोड और सक्रिय होने वाले सभी छोटे मोड प्रकट करेंगे। जब तक आप कारण को ट्रैक नहीं कर लेते, आप धीरे-धीरे प्रत्येक मामूली-मोड को अक्षम कर सकते हैं। यह स्वयं प्रमुख विधा हो सकती है, लेकिन लघु विधाएं सबसे अधिक संदिग्ध हैं। यह निर्दिष्ट किए बिना कि आप कौन से मोड का उपयोग कर रहे हैं, यहां कोई भी आपके मुद्दे पर क्या हो रहा है, बस अंधेरे में छुरा घोंप रहा होगा। मेरे पास एक दुर्लभ स्थिति है जो कुछ विशेष छवियों के साथ होती है - उदाहरण के लिए, जब कोई व्यक्ति मुझे iPhone में टेलीफोन प्रतीक या अन्य विशेष प्रतीकों के साथ कुछ ई-मेल करता है - लेकिन यह विशेष प्रतीकों के कारण अलग-थलग धीमा मुद्दा है।
१४:१४

2
linum-modeबड़े बफ़र्स में प्रदर्शन धीमा कर देता है। nlinum-modeस्टीफन द्वारा लिखित बड़े बफ़र्स के लिए बेहतर है।
कानून व्यवस्था

आपके कंप्यूटर पर क्या हो रहा है? कितनी मेमोरी का उपयोग किया जा रहा है? आपका सीपीयू कितना सक्रिय है और इसके अधिकांश उपयोग के लिए कौन से कार्यक्रम जिम्मेदार हैं? समस्या कुछ अन्य कार्यक्रम भी हो सकती है।
डेव

2
ओह, मैंने अभी यह संदर्भ एक और सूत्र में पोस्ट किया है: gnu.org/software/emacs/manual/html_node/elisp/Profiling.html - यह एक अच्छी शुरुआत होगी। इसके अलावा, अंधेरे में एक शॉट: फॉन्ट-लॉक gnu.org/software/emacs/manual/html_node/emacs/Font-Lock.html को अक्षम करने का प्रयास करें - यह मेरा पहला सामान्य संदेह है (जो अक्सर उचित रूप से सीपीयू के अधिकांश चक्रों को उठाता है। )।
wvxvw

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

जवाबों:


64

इस समस्या का क्या कारण हो सकता है? क्या यह एमएसीएस के कारण है या यह मेरे पीसी के प्रदर्शन के कारण है? आम तौर पर वे चर क्या होते हैं जो Emacs के प्रदर्शन को प्रभावित करते हैं?

Emacs में लगभग 50,000 आंतरिक चर और कुछ दर्जन चर पर औसतन कुछ हज़ार बाहरी पैकेज होते हैं, आप किसी से सामान्य अर्थ में इसका उत्तर देने की उम्मीद नहीं कर सकते। :-)

आप अपने प्रश्न के तहत टिप्पणी थ्रेड को देख सकते हैं। वहाँ आधा दर्जन अलग-अलग सुझाव हैं, सभी समान रूप से मान्य हैं।

समस्या को इंगित करने के लिए आप क्या कर सकते हैं?

विकल्प 1: मोड अक्षम करें

उन मामूली-मोडों को अक्षम करना शुरू करें जिन्हें आपने सूचीबद्ध किया है, और देखें कि कौन सा आपको प्रदर्शन समस्या हल करता है। मैं के साथ शुरू होगा smartparens, auto-complete, line-numberऔर font-lock, और फिर इस सूची में नीचे का पालन करें।

"मुझे कल यह समस्या नहीं थी" का अर्थ बहुत कम है, इस पर बहुत अधिक भरोसा न करें । बस मामूली-मोड को अक्षम करना शुरू करें जब तक कि कुछ हल न हो जाए।

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

विकल्प 2: प्रोफाइलर

  1. आह्वान करना M-x profiler-start RET RET(दूसरा RETपुष्टि करना है cpu);
  2. कुछ टाइपिंग करें, अधिमानतः एक संपूर्ण पैराग्राफ या अधिक;
  3. आह्वान किया M-x profiler-report

यह आपको प्रत्येक फ़ंक्शन द्वारा लिए गए सीपीयू समय का वर्णन करने वाला एक बफर देगा। TABएक पंक्ति पर हिट करने से यह उसके अंदर के कार्यों को प्रदर्शित करने के लिए फैलता है। इस बफ़र को तब तक नेविगेट करें जब तक आपको पता न चले कि कौन सा फ़ंक्शन इतना CPU समय ले रहा है।

मैं बाद में क्या करूँ?

एक बार जब आप फ़ंक्शन या पैकेज या स्निपेट का कारण बनते हैं, तो आप कर सकते हैं (कोई विशेष क्रम में):

  • उस विशिष्ट मामूली-मोड (या फ़ंक्शन या स्निपेट) के बारे में यहां एक नया प्रश्न पूछें ।
  • पैकेज अनुरक्षक को बग की सूचना दें।
    • पैकेज के स्रोत फ़ाइल के शीर्ष पर टिप्पणियों की जाँच करें। यदि इसमें URL (विशेष रूप से github) है, तो संभवत: वहाँ एक समस्या ट्रैकर है।
    • कुछ पैकेज जैसे कमांड देते हैं M-x PACKAGE-bug-report
    • उसका या उसका ईमेल पैकेज की स्रोत फ़ाइल के शीर्ष पर होना चाहिए।
  • यदि यह एक अंतर्निहित पैकेज है, तो आप इसके साथ रिपोर्ट कर सकते हैं M-x report-emacs-bug
  • यहां तक ​​कि उन पैकेजों के लिए जो अंतर्निहित नहीं हैं, आप help-gnu-emacsमेलिंग सूची में मदद मांग सकते हैं ।

4
ये महान निर्देश हैं। आपका बहुत बहुत धन्यवाद! जैसा कि मैंने अपने कथन की टिप्पणियों में कहा है कि मुझे नहीं पता था कि यह अस्पष्ट होने वाला था। मुझे लगा कि Emacs पर किसी विशेषज्ञ के लिए उत्तर प्राथमिक होगा (जैसे आप में से कई हैं)। वैसे भी यह "मार्गदर्शक" महान है और मुझे खुशी है कि मेरा प्रश्न उस ओर जाता है। :)
एडम

3
प्रोफाइलर का उपयोग करने के लिए +100000। यदि आप मूर्ख हैं (मेरी तरह) और गलती से कुछ ऐसा करते हैं जैसे हर बफर में मोड लाइन में एक महंगी फ़ंक्शन कॉल जोड़ते हैं, तो यह सुनिश्चित करने का तरीका है कि क्या हो रहा है।
रेडॉन रोसबोरो

आप मामूली मोड को कैसे अक्षम करते हैं? सक्षम छोटे मोड: Async-Bytecomp-Package ऑटो-कम्प्लीट ऑटो-कम्पोज़िशन ऑटो-कंप्रेशन ऑटो-कंप्रेशन फाइल-नेम-शैडो फ्लाईकैच फ्लाईस्पेल फॉन्ट-लॉक ग्लोबल-ऑटो-कम्प्लीट ग्लोबल-ऑटो-रिवर्ट ग्लोबल-एल्डोक ग्लोबल-फ्लाईचेक ग्लोबल-फॉन्ट-लॉक ग्लोबल -गिट-कमिट ग्लोबल-एचएल-लाइन ग्लोबल-हंग्री-डिलीट ग्लोबल-लिनुम लाइन-नंबर लाइनम मैगिट-ऑटो-रिवर्ट ऑर्ग-बुलेट्स ऑर्ग-इंडेंट ओवरराइड-ग्लोबल प्रोजेक्टाइल पिवेव रीफ-प्लेस शेल-डर्ट्रैक शो-परन शो-स्मार्टपैरेंस शो-स्मार्टपैरेन्स-ग्लोबल साइज़-इंडिकेशन स्मार्टपेरेन्स स्मार्टपर्न्स-ग्लोबल
स्ट्राइकर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.