c - AIR Native Extension 调用需要异常长的时间

标签 c windows actionscript-3 air kinect

我有一个 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/

相关文章:

flash - 嵌入字体并在 Flash 中正确显示的问题

c - 如何在二维字符数组中存储单个字符?

C 链接库错误

java - 我需要一些帮助将一些代码从 C 转换为 Java

windows - Powershell:始终生成空文件(比较对象的输出)

java - java中从多个arrayList中获取值

c - 意外的 strtok() 行为

c# - 使用 taskkill 停止 Windows 服务

windows - Windows 上 Visual Studio Code 的 PlantUML 扩展仅适用于序列图

apache-flex - 我如何知道何时单击了 Flex DataGrid itemRenderer 中的按钮?