2

我们在目标 c 中编写了一个简单的 OS X 可执行文件。它在调用时打开并运行得非常快。

然后,我们将该可执行文件放入 .app 包中。从该捆绑包的命令行调用“open”或从 finder 双击应用程序时,“open”调用可能需要 30 秒以上的时间才能返回。

这尤其令人困惑,因为“打开”清楚地立即启动可执行文件(我可以看到它立即在进程列表中运行,并且有其他迹象表明它正在工作),但是当从命令行完成时,“打开”命令需要很长时间才能返回,并且从 Finder 完成后,图标会弹跳很长时间,然后才能正常运行。

我知道可执行文件本身仍然会很快打开,因为在我的包内的可执行文件上调用“open”会很快返回,但是在 .app 上调用它会立即运行代码,但需要 30 秒左右才能返回。

有没有人遇到过这个?您对可能导致这种情况的原因有什么建议吗?我无法在包结构或 plist 中看到任何有趣的东西,但也许我遗漏了一些东西。

4

1 回答 1

0

尝试在这 30 秒的挂起期间使用 Shark 收集大约 10 秒的系统范围的采样数据,看看时间花在了哪里——这应该会给你一个关于启动时间问题的重要线索。

于 2010-03-24T07:49:07.403 回答