pyobjc应用程序加载时间的改进

时间:2016-01-21 04:20:35

标签: python cocoa py2app pyobjc

我已经构建了一个pyobjc应用程序,发现它似乎需要很长时间才能加载。

我添加了日志记录来衡量加载每个步骤所需的时间。在进入AppHelper.runEventLoop()之前,应用程序需要10秒钟,有时需要20秒才能加载。

条带代码如下所示:

import objc
objc.setVerbose(DEBUG) # debug flag True/False
from ApplicationView import ApplicationView
from ApplicationDelegate import ApplicationDelegate
....
from PyObjCTools import AppHelper
AppHelper.runEventLoop()

ApplicationView ApplicationDelegate 是实现Cocoa应用程序用户界面并具有许多导入的自定义模块。我认为这是需要很长时间的地方。

我的问题是:

  1. 如果导入模块中的导入会影响加载时间,我可以在那里添加代码来检查特定导入是否必要,这对加载时间有帮助吗?

  2. 如果我想添加一个启动画面,我怎么能这样做,如果最坏的情况我不能对ApplicationView和ApplicationDelegate模块进行任何更改,并且需要等待它们加载。

1 个答案:

答案 0 :(得分:0)

摆脱自定义模块中的所有导入似乎有帮助,因为它们仅在加载特定窗口(NSWindowController)时使用。这是因为我通过NSWindowController构建了应用程序,因此我只在ApplicationDidLoad中加载了主要的应用程序,该类是继承NSObject的ApplicationDelegate类。

相关问题