2009-09-05 6 views
19

Kcachegrind चट्टानों और यह मेरे पसंदीदा उपकरणों का है, हालांकि समय-समय पर मुझे दूरस्थ सर्वर पर टर्मिनल (उदाहरण के लिए एसएसएच का उपयोग करके) चलाने की क्षमता याद आ रही है।kcachegrind का कंसोल विकल्प?

मुझे पता है कि वीएनसी या एक्स-सर्वर अग्रेषण स्थापित करना संभव है लेकिन मुझे कुछ आसान होने पर काफी बेकार है।

क्या कोई केकेश्रिंड कंसोल विकल्प है (उदाहरण के लिए ncurses आधारित)?

उत्तर

-5

kcachegrind राज्यों की मदद से यह कैश्रिंड और कॉलग्रिंड के लिए एक अग्रभाग है।

कैशग्रींड और कॉलग्रिंड नवीनतम संस्करण (3.5) वाल्ग्रिंड के कुछ हिस्सों हैं। तो, http://valgrind.org/downloads/current.html#current से valgrind डाउनलोड करें और इसे बनाएं। Valgrind --help चलाएं, यह आपको कॉलग्रिंड कार्यक्षमता का उपयोग करने का तरीका दिखाता है।

अधिक जानकारी के लिए मुझे यह जानना होगा कि आप क्या करना चाहते हैं।

+3

साथ cachegrind के लिए कैश आकार निर्दिष्ट कर सकते हैं मुझे लगता है कि तुम सच में सवाल पढ़ा नहीं था। मुझे कॉलग्रिंड/कैशग्रींड के लिए एनसीआरएस आधारित फ्रंटेंड की आवश्यकता है। – pachanga

+0

उत्तर valgrind है। निर्देशों के लिए वाल्ग्रिंड का उपयोग कैसे करें, valgrind --help चलाएं। –

+2

आप गलत हैं, जवाब वाल नहीं है।वालग्रिंड केवल 'रन और इकट्ठा जानकारी' चरण करता है, लेकिन कॉलग्रिंड और कैश्रिंड – osgx

0

रिमोट होस्ट पर वालग्रिंड/कॉलग्रींड चलाना एक अच्छा विकल्प प्रतीत होता है। या, आप अपने पीसी पर वालग्रिंड या कैलग्रींड से आउटपुट स्केल कर सकते हैं और उस पर केकेचेग्रंड चला सकते हैं।

यदि आप Emacs का उपयोग करते हैं, तो आप इसे दूरस्थ होस्ट पर आग लगा सकते हैं और here दिखाए गए हैं, जो आपको वाल्ग्रिंड टूल के लिए Emacs'ish फ्रंटेंड देगा।

5

उस दूरस्थ निर्देशिका को माउंट करने के लिए SSHFS का उपयोग करें (उदा। SSHFS installation instructions for Ubuntu देखें)।

तो बस दूरस्थ निर्देशिका में जो भी विकल्प चाहते हैं, उसके साथ valgrind --tool=callgrind चलाएं और चलाएं। चूंकि आपके पास उस निर्देशिका को स्थानीय रूप से आरोहित किया गया है, इसलिए डेटा फ़ाइलों को KCacheGrind के साथ खोलना उतना ही आसान है जितना कि आप स्थानीय रूप से डिबगिंग कर रहे थे।

+0

के लिए 'परिणाम देखें' नहीं, कैशग्रींड फ़ाइलें कई सौ एमबी तक बड़ी हो सकती हैं। बड़ी फ़ाइलों पर ऐसा करने की वास्तव में अनुशंसा नहीं की जाती है क्योंकि kcachegrind एक ही समय में पूरी फ़ाइल को पढ़ता है, जिसके लिए एक तेज कनेक्शन पर भी कई मिनट की आवश्यकता होगी। –

3

webgrind PHP में लिखा गया एक वेब-फ्रंटेंड है जो XDebug (जो कॉलग्रिंड के समान प्रारूप का उपयोग करता है) के आउटपुट को पार करता है, इसलिए इसे कॉलग्रिंड के आउटपुट के साथ काम करना चाहिए (हालांकि मैंने अभी तक इसका परीक्षण नहीं किया है)।

+0

"यह kcachegrind की विशेषताओं का सबसेट लागू करता है"। तो, उदा। वेबग्रिंड के माध्यम से असेंबलर आउटपुट पहुंच योग्य नहीं होगा – osgx

9

आप आदेश-पंक्ति उपयोगिता callgrind_annotate साथ बुनियादी जानकारी और callgrind आउटपुट फ़ाइल (valgrind --tool=callgrind द्वारा बनाई गई) से एनोटेशन प्राप्त कर सकते हैं। (manual pagesection in docs)। फाइलों के लिए, कैशग्रींड (valgrind --tool=cachegrind) द्वारा उत्पन्न, आप cg_annotate (section in docs) का उपयोग कर सकते हैं। ये उपयोगिताओं डिफ़ॉल्ट रूप से valgrind के साथ बना रहे हैं।

एक और तरीका प्रोग्राम और कैश/कॉलग्रिंड आउटपुट फ़ाइलों को अपनी मशीन पर कॉपी करना है और फिर उन्हें स्थानीय केकेश्रिंड के साथ सामान्य रूप से विश्लेषण करना है। लेकिन इस तरह यह मुश्किल हो सकता है यदि आपकी मशीन में कोई यूनिक्स नहीं है लेकिन विंडोज़ या आप असंगत आर्क पर चल रहे हैं (kcachegrind प्रोग्राम के बारे में जानकारी प्राप्त करने के लिए स्थानीय objdump पर कॉल कर सकते हैं)।

मैं भी आदेश पंक्ति विकल्प valgrind करने की सलाह देते हैं:

valgrind --tool=cachegrind --branch-sim=yes 
valgrind --tool=callgrind --dump-instr=yes --trace-jump=yes 

तुम भी --I1=32768,8,64 --D1=32768,8,64 --L2=3145728,12,64