我的XBMC AddOn会产生很多关于潜在内存泄漏的日志警告:
13:49:02 T:139712465467136警告:CPythonInvoker(12,/ home / test / xbmc / addons / script.testplugin / default.py):python脚本" /home/test/.xbmc /addons/script.testplugin/default.py"在记忆中留下了几个我们无法清理的课程。这些课程包括:N14PythonBindings42XBMCAddon_xbmcgui_WindowXMLDialog_DirectorE,N9XBMCAddon7xbmcgui12ControlLabelE,N9XBMCAddon7xbmcgui12ControlLabelE,N9XBMCAddon7xbmcgui8ListItemE
导致此警告的原因是什么?如何避免这些警告?
答案 0 :(得分:1)
您是否在插件代码中制作并使用了xbmcaddon.Addon类的子类?
看起来Kodi / XBMC可能在清理xbmcaddon.Addon类的子类时遇到问题。我注意到,一旦我创建了这样的子类的实例,我就开始从CPythonInvoker接收与你的类似的警告消息。
sys.getrefcount(instanceOfMySubclass)
在创建子类的实例后立即给出了4个引用。使用del
删除子类显然会从当前作用域中删除对子类的引用,但不清楚它是否还删除了其他3个引用。也许其他参考文献是让CPythonInvoker抱怨“我们无法清理的内存中的几个类”。
在我的情况下,一旦我停止使用xbmcaddon.Addon的子类,警告消息就会消失。