2016-04-30 12 views
5

मैं किवी का उपयोग कर एक गेम बना रहा हूं। मुझे प्रदर्शन के मुद्दों का सामना करना पड़ रहा है इसलिए मैंने कार्यक्रम को प्रोफाइल करने का फैसला किया।मैं एक किवी एप्लिकेशन कैसे प्रोफाइल कर सकता हूं?

python -m cProfile main.py 

आवेदन स्क्रीन काली रहता है:

मैं द्वारा इसे चलाने की कोशिश की।

Traceback (most recent call last): 
    File "c:\python27\Lib\runpy.py", line 162, in _run_module_as_main 
    "__main__", fname, loader, pkg_name) 
    File "c:\python27\Lib\runpy.py", line 72, in _run_code 
    exec code in run_globals 
    File "c:\python27\Lib\cProfile.py", line 199, in <module> 
    main() 
    File "c:\python27\Lib\cProfile.py", line 192, in main 
    runctx(code, globs, None, options.outfile, options.sort) 
    File "c:\python27\Lib\cProfile.py", line 49, in runctx 
    prof = prof.runctx(statement, globals, locals) 
    File "c:\python27\Lib\cProfile.py", line 140, in runctx 
    exec cmd in globals, locals 
    File "main.py", line 26, in <module> 
    GameApp().run() 
    File "C:\Users\Aviv\Envs\game\lib\site-packages\kivy\app.py", line 828, in run 
    runTouchApp() 
    File "C:\Users\Aviv\Envs\game\lib\site-packages\kivy\base.py", line 487, in runTouchApp 
    EventLoop.window.mainloop() 
    File "C:\Users\Aviv\Envs\game\lib\site-packages\kivy\core\window\window_sdl2.py", line 619, in mainloop 
    self._mainloop() 
    File "C:\Users\Aviv\Envs\game\lib\site-packages\kivy\core\window\window_sdl2.py", line 403, in _mainloop 
    x, y = self._fix_mouse_pos(x, y) 
    File "C:\Users\Aviv\Envs\game\lib\site-packages\kivy\core\window\window_sdl2.py", line 358, in _fix_mouse_pos 
    self.mouse_pos = x, self.system_size[1] - y 
    File "kivy\properties.pyx", line 408, in kivy.properties.Property.__set__ (kivy\properties.c:5114) 
    File "kivy\properties.pyx", line 446, in kivy.properties.Property.set (kivy\properties.c:5876) 
    File "kivy\properties.pyx", line 501, in kivy.properties.Property.dispatch (kivy\properties.c:6557) 
    File "kivy\_event.pyx", line 1224, in kivy._event.EventObservers.dispatch (kivy\_event.c:13497) 
    File "kivy\_event.pyx", line 1130, in kivy._event.EventObservers._dispatch (kivy\_event.c:12696) 
    File "game\opening_screen.py", line 22, in _on_mouse_pos 
    if self.ids.start_button.collide_point(*position): 
    File "kivy\properties.pyx", line 757, in kivy.properties.ObservableDict.__getattr__ (kivy\properties.c:11882) 
AttributeError: 'super' object has no attribute '__getattr__' 

हो रहा क्यों है, और कैसे मैं अपने Kivy आवेदन प्रोफ़ाइल कर सकते हैं: कई सेकंड बाद, एक अपवाद कार्यक्रम दुर्घटनाओं?

उत्तर

5

किवी दस्तावेज़ बताते हैं कि आप इसे कमांड लाइन से नहीं कर सकते हैं।

https://kivy.org/docs/api-kivy.app.html

आप इस तरह यह कर सकते हैं: (डॉक्स से नकल)

import cProfile 

class MyApp(App): 
    def on_start(self): 
     self.profile = cProfile.Profile() 
     self.profile.enable() 

    def on_stop(self): 
     self.profile.disable() 
     self.profile.dump_stats('myapp.profile') 
+1

धन्यवाद दोस्त :) बहुत उपयोगी। –

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