【发布时间】:2009-07-24 15:35:45
【问题描述】:
我有一个本地 C++ 应用程序,我需要对其进行分析以诊断性能问题。我可以为 WinCE 找到的唯一分析器是 Remote Call Profiler,它需要使用 Platform Builder 构建应用程序,以便可以在其中编译检测挂钩。
我的应用程序是用 VS2008 构建的。有什么建议吗?
【问题讨论】:
标签: performance windows-mobile windows-ce
我有一个本地 C++ 应用程序,我需要对其进行分析以诊断性能问题。我可以为 WinCE 找到的唯一分析器是 Remote Call Profiler,它需要使用 Platform Builder 构建应用程序,以便可以在其中编译检测挂钩。
我的应用程序是用 VS2008 构建的。有什么建议吗?
【问题讨论】:
标签: performance windows-mobile windows-ce
感谢您的回答。我已经完成了其中的一些建议。然而,后来我知道我错了。使用 VS2008 构建的应用程序可以与 Remote Call Profiler 一起使用。
【讨论】:
我还没有找到分析 CE 应用程序的方法;我使用蛮力方法。以下是我的建议:
1) 避免在时间要求严格的代码中使用除法和浮点运算,因为它们不是旧 ARM 处理器的本机指令。一个简单的整数除法会变成 100 个时钟的运行时库代码,浮点运算甚至更慢。
2) 用汇编语言编写“内循环”代码,因为编译器做得不好。
3) 使用内部计时器(GetTickCount 在 WinCE 上的分辨率为 1ms)为自己的函数计时。
4) 有选择地启用/禁用代码部分以衡量每个部分花费的时间。
希望这会有所帮助, L.B.
【讨论】:
您使用的是特殊的 WinCE API 还是第 3 方库?因为您可以尝试为 Win32 编译您的应用程序,并且在该平台上您有更多的分析选项。
【讨论】: