2015-06-29 7 views
9

Kcachegrind नेत्रहीन स्रोत लाइन स्तर तक हॉटस्पॉट प्रतिनिधित्व करने के लिए जब कोड की रूपरेखा एक अद्भुत उपयोगिता के रूप में कार्य करता है। जब मैं अपने सी ++ कोड बेस को अनुकूलित करता हूं तो मुझे यह बहुत उपयोगी लगता है। मेरा नवीनतम अजगर परियोजना के लिए मैं profilestats से उत्पादन प्रक्रिया करने के लिए Kcachegrind उपयोग शुरू कर दिया। Kcachegrind एक लिनक्स केवल उपयोगिता लेकिन विभिन्न अनौपचारिक बंदरगाहों उपलब्ध हैं और एक मैं उपयोग कर रहा हूँ है qcachegrind है। आम तौर पर यह एक बड़ी हद तक काम करता है और मैं एक मुश्किल समय स्रोत एनोटेशन काम हो रही हो रहा है को छोड़कर अधिकतर समस्याओं के पर्याप्त होता।स्रोत कैसे व्याख्या अजगर जब qcachegrind का उपयोग कर profilestats उत्पादन पर कार्रवाई करने के

स्रोत टैब पर मैं परिचित स्रोत संदेश

There is no source available for the following function: 
    'main C:\Projects\module\src\source.py:397' 
This is because no debug information is present 
Recompile source and redo the profile run. 
The function is located in the ELF Object: 
    '(unknown)' 

लापता विकल्प

Settings -> Configure -> Source Annotation 

का उपयोग करना और जोड़ने स्रोत बेस निर्देशिका उपयोगी नहीं था के साथ स्वागत किया जा रहा है।

मुझे लगता है कि उपयोगिता एक ELF वस्तु जो अजगर के लिए प्रासंगिक नहीं है चाहता है। इस संबंध में कोई मदद उपयोगी होगी।

प्रासंगिक जानकारी:

  • अजगर 2.7
  • profilestats (2,0)
  • QCachegrind 0.7.4
  • विंडोज 2012R2
+0

'तरह profilestats' इसके उत्पादन में प्रासंगिक डेटा शामिल नहीं किया जा सकता है लगता है। आप "अजगर प्रारूप" में रूपरेखा उत्पादन बचत और का उपयोग कर इसे परिवर्तित [ 'pyprof2calltree'] (https://pypi.python.org/pypi/pyprof2calltree/) की कोशिश की? – taleinat

उत्तर

1

मैं दूसरी टिप्पणी @taleniat। मैं एक ओएसएक्स उपयोगकर्ता हूँ। मुझे काम करने के लिए qcachegrind प्राप्त करने में कुछ परेशानी हो रही थी इसलिए मैं pyprof2calltree का उपयोग कर समाप्त हुआ और यह पूरी तरह से काम करता है, स्रोत कोड टैब शामिल है। YMMV।

सबसे पहले तो आप qcachegrind शुरू करने के लिए (मध्यवर्ती रूपांतरण के लिए कोई ज़रूरत नहीं) pyprof2calltree उपयोग कर सकते हैं cProfile

साथ

python -m cProfile -o report.profile report.py

अपनी स्क्रिप्ट चलाने।

pyprof2calltree -k -i report.profile

तरह से, अजगर 2.7.10 द्वारा और 0.7.4 homebrew के माध्यम से स्थापित qcachegrind पर OSX 10.11

संबंधित मुद्दे