我的XBMC AddOn生成了很多关于潜在内存泄漏的日志警告:
13:49:02 T:139712465467136 WARNING: /home/test/.xbmc/addons/script.testplugin/default.py):(12,"/home/test/.xbmc/addons/script.testplugin/default.py“CPythonInvoker python script”/home/test/.xbmc/addons/script.testplugin/default.py“在内存中留下了几个我们无法清理的类。这些类包括: N14PythonBindings42XBMCAddon_xbmcgui_WindowXMLDialog_DirectorE,N9XBMCAddon7xbmcgui12ControlLabelE、N9XBMCAddon7xbmcgui12ControlLabelE、N9XBMCAddon7xbmcgui8ListItemE
是什么导致了这一警告,我如何避免它们?
发布于 2015-06-13 09:29:39
你是否在你的插件代码中创建并使用了xbmcaddon.Addon类的子类?
看起来Kodi/XBMC在清理xbmcaddon.Addon类的子类时可能有问题。我注意到,一旦我创建了这样一个子类的实例,我就开始收到来自CPythonInvoker的警告消息,这些消息与您的类似。
在我的子类的一个实例创建之后,sys.getrefcount(instanceOfMySubclass)立即给了我4个引用。使用del删除子类显然会从当前作用域中删除对该子类的引用,但不清楚它是否也会删除其他3个引用。也许其他引用会让CPythonInvoker抱怨“内存中有几个类我们无法清理”。
在我的例子中,一旦我停止使用xbmcaddon.Addon的子类,警告消息就消失了。
https://stackoverflow.com/questions/26588266
复制相似问题