我有一个 AIR Native Extension,它带有适用于 Windows 的 C 实现,以提供对 Kinect for Windows SDK 的访问。我知道 AIRKinect,但某些因素需要定制解决方案。
最近出现了一个问题,导致整个应用程序在使用“运行/调试”按钮从 Flash Builder 4.6 中启动时速度降低约 100 倍。
尝试的解决方案
最初,在问题再次出现之前,重启可以让我运行/调试应用程序一次。不久之后,即使这种方法也开始失效。
将系统恢复到一个月前的状态时,问题似乎永久解决了。在此时间范围内对系统进行的唯一更改是 Windows 更新。今天安装新的 Windows 更新显然使问题重现。
已确认问题的原因不在我的源代码中 - 我回滚到过去的几个修订版,但问题仍然存在。
奇怪的是,将应用程序导出为发布版本、安装并运行它时没有出现任何问题。但是,此工作流程不适合日常开发,因为构建需要整整一分钟,并且无法进行正确调试(至少我知道无法将调试器附加到正在运行的已安装 AIR 应用程序。 )
地点
通过分析代码,我设法追踪到调用 context.call
的异常长的运行时间。奇怪的是,在测量函数 block 开始和结束之间耗时时,实现 native 部分的函数和往常一样快。
这只能说明问题介于两者之间。由于网上缺乏此类案例的信息,我和我的同事已经穷尽了知识。我非常感谢任何可能有助于找到此问题的原因和解决方案的建议。
最佳答案
运行调试器时性能下降并不奇怪。这对于大多数(如果不是全部)开发来说都是典型的,包括 ADL。
虽然这不会缩短编译时间,但您可以创建一个简单的调试类,将跟踪语句输出到文本字段。
关于c - AIR Native Extension 调用需要异常长的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11627766/