2012-08-31 30 views
223

क्या विम प्लगइन्स प्रोफाइल करने का कोई तरीका है?यह देखने के लिए कि कौन से प्लगइन्स वीम धीमा कर रहे हैं?

जब मैं बड़ा .py खोलता हूं तो मेरा मैकवीम धीमा और धीमा हो जाता है। मुझे पता है कि मैं सभी प्लगइन्स को अचयनित कर सकता हूं और जांच कर सकता हूं कि कौन सी प्लगइन अपराधी है, लेकिन क्या कोई तेज तरीका है?

मेरे dotvim यहाँ है:

vim -V12log 

यह अधिकतम शब्दाडंबर प्रदान करता है (स्तर 12: https://github.com/charlax/dotvim

+3

देखें http://stackoverflow.com/questions/1687799/profiling-vim-startup-time – chelmertz

+0

दरअसल, स्टार्टअप ठीक है। कुछ मिनट के उपयोग के बाद विम धीमा हो जाता है। यह विशेष रूप से '.py' फ़ाइलों से संबंधित है। – charlax

+0

बाइनरी खोज * जाने का रास्ता है। आपने 2 घंटे पहले अपने प्रश्न पूछा है, उस समय आपकी समस्या का कारण पाया गया होगा। कार्कत की 'ऑटोकॉम्ड' हंच से गुजरना मेरे लिए व्यावहारिक लगता है। – romainl

उत्तर

353

आप उपयोग कर सकते हैं में निर्मित समर्थन की रूपरेखा: vim शुरू करने के बाद करना

:profile start profile.log 
:profile func * 
:profile file * 
" At this point do slow actions 
:profile pause 
:noautocmd qall! 

(noautocmd छोड़ने के विपरीत वास्तव में आवश्यक नहीं है, यह केवल तेज छोड़ देता है)।

नोट: आपको विम छोड़ने से पहले हटाए गए कार्यों के बारे में जानकारी नहीं मिलेगी।

+12

यह अद्भुत है। मैं यह देखने में सक्षम था कि EasyTags अपराधी है। आपका बहुत बहुत धन्यवाद! – charlax

+1

यह वास्तव में मेरी मदद की। मैंने पाया कि विम-सिग्निफ़ाई और टैगबार बहुत कम हो रहा है। इसके लायक नहीं! –

+4

इससे मुझे क्लोज के रूप में "vim-gitgutter" का पता लगाने में मदद मिली। –

11

मैं पाया है यह उपयोगी -V विकल्प के साथ विम शुरू करने से एक फाइल करने के लिए सभी विम गतिविधि मुद्रित करने के लिए) और इसे log फ़ाइल में आउटपुट करता है। फिर आप कुछ विम क्रियाएं कर सकते हैं जिन्हें आप धीमे होने के बारे में जानते हैं, और फिर देखें कि कौन से फ़ंक्शंस/मैपिंग को आंतरिक रूप से बुलाया जा रहा है।

+8

लेकिन कोई समय नहीं है लॉग – Kokizzu

26

यह एक प्लगइन या वाक्यविन्यास हाइलाइटिंग हो सकता है; ऐसा होने पर :syntax off आज़माएं और देखें कि विम तुरंत तेज़ी से हो जाता है या नहीं।

प्लगइन के साथ, आमतौर पर "सामान्य धीमा" आमतौर पर ऑटोकॉन्ड्स से आता है; :autocmd उन सभी को सूचीबद्ध करता है। उनमें से कुछ को :autocmd! [group] {event} के माध्यम से मारकर जांच करें। अधिक लगातार घटनाओं (यानी CursorMoved[I]) से कम बार-बार (उदाहरण के लिए BufWinEnter) से आगे बढ़ें।

यदि आप कुछ हद तक धीमी गति से पुन: उत्पन्न कर सकते हैं, तो बाइनरी खोज में मदद मिल सकती है: ~/.vim/plugin/ में फ़ाइलों का आधा भाग ले जाएं, फिर दूसरा, धीमी गति से सेट में दोहराएं।

यदि आपको वास्तव में हुड के नीचे देखने की आवश्यकता है, तो एक विम संस्करण प्राप्त करें जिसमें :profile कमांड सक्षम है। (। नहीं वेनिला बड़े Windows संस्करण है, लेकिन एक यह है कि Cygwin के साथ जहाजों, यह भी, स्वयं संकलन सबसे distros के तहत काफी आसान है)

50

मुझे आपके .vimrc को लोड करते समय बिल्कुल सही समय संदेश दिखाने के लिए एक और बहुत उपयोगी vim buildin विधि मिली।

vim --startuptime timeCost.txt timeCost.txt 

चलाने करें:

:help --startuptime 

विम में और अधिक जानकारी प्राप्त करने के लिए।

+1

बस अगर कोई और सोच रहा है, तो यह अस्तित्व में नहीं है सभी vim/gvim distros। यहां स्टॉक विन जीविम 7.4 में नहीं है (हालांकि इसे viminfo में दस्तावेज किया गया है) – thynctank

+1

@thynctank मैंने अपने जीवीआईएम 7.4 पर कोशिश की और यह काम किया। यहां मेरा संस्करण 'आईएम - वी सुधारित 7.4 है (2013 अगस्त 10, 10 अगस्त 2013 14:33:40 संकलित)' – feihu

+0

सर्वश्रेष्ठ उत्तर! मुझे सबसे धीमी प्लगइन की पहचान करने में मदद मिली जिसने मुझे हर विम स्टार्ट पर नाराज कर दिया। Thanx :) – kovpack