本文介紹了如何分析 Kivy 應用程序?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我正在使用 Kivy 構建游戲.我遇到了性能問題,所以我決定分析該程序.
I'm building a game using Kivy. I'm encountering performance issues so I decided to profile the program.
我嘗試通過以下方式運行它:
I tried to run it by:
python -m cProfile main.py
應用程序屏幕保持黑色.幾秒鐘后,一個異常使程序崩潰:
The application screen stays black. After several seconds, an exception crashes the program:
Traceback (most recent call last):
File "c:python27Lib
unpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "c:python27Lib
unpy.py", line 72, in _run_code
exec code in run_globals
File "c:python27LibcProfile.py", line 199, in <module>
main()
File "c:python27LibcProfile.py", line 192, in main
runctx(code, globs, None, options.outfile, options.sort)
File "c:python27LibcProfile.py", line 49, in runctx
prof = prof.runctx(statement, globals, locals)
File "c:python27LibcProfile.py", line 140, in runctx
exec cmd in globals, locals
File "main.py", line 26, in <module>
GameApp().run()
File "C:UsersAvivEnvsgamelibsite-packageskivyapp.py", line 828, in run
runTouchApp()
File "C:UsersAvivEnvsgamelibsite-packageskivyase.py", line 487, in runTouchApp
EventLoop.window.mainloop()
File "C:UsersAvivEnvsgamelibsite-packageskivycorewindowwindow_sdl2.py", line 619, in mainloop
self._mainloop()
File "C:UsersAvivEnvsgamelibsite-packageskivycorewindowwindow_sdl2.py", line 403, in _mainloop
x, y = self._fix_mouse_pos(x, y)
File "C:UsersAvivEnvsgamelibsite-packageskivycorewindowwindow_sdl2.py", line 358, in _fix_mouse_pos
self.mouse_pos = x, self.system_size[1] - y
File "kivyproperties.pyx", line 408, in kivy.properties.Property.__set__ (kivyproperties.c:5114)
File "kivyproperties.pyx", line 446, in kivy.properties.Property.set (kivyproperties.c:5876)
File "kivyproperties.pyx", line 501, in kivy.properties.Property.dispatch (kivyproperties.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 "gameopening_screen.py", line 22, in _on_mouse_pos
if self.ids.start_button.collide_point(*position):
File "kivyproperties.pyx", line 757, in kivy.properties.ObservableDict.__getattr__ (kivyproperties.c:11882)
AttributeError: 'super' object has no attribute '__getattr__'
為什么會發生這種情況,如何分析我的 Kivy 應用程序?
Why is this happening, and how can I profile my Kivy application?
推薦答案
kivy 文檔聲明您無法從命令行執行此操作.
The kivy docs state that you cannot do it from the command line.
https://kivy.org/docs/api-kivy.app.html
你可以這樣做:(從文檔復制)
You can do it like this: (copied from the docs)
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')
這篇關于如何分析 Kivy 應用程序?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!
【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!