当前位置:  开发笔记 > 开发工具 > 正文

用于Windows CE/Mobile的代码分析/性能分析工具

如何解决《用于WindowsCE/Mobile的代码分析/性能分析工具》经验,为你挑选了2个好方法。

除了Visual Studio中的工具之外,您还知道哪些工具可以分析Windows CE/Mobile应用程序中的性能瓶颈?我正在寻找类似于CE/Mobile的AQTime之类的东西来分析编译为本机代码的C/C++应用程序.



1> ctacke..:

Windows CE支持Remote Call Profiler(如果OEM添加了对它的支持),开箱即用.我相信,WinMo图像通常已经在图像中得到了支持.对于CE,您需要IMAGEPROFILER环境变量集(使用项目属性).

在MSDN中不清楚的是如何检测不是使用Platform Builder构建的应用程序,但它实际上非常简单.您必须将/ callcap swith添加到编译器命令行,并将cecap.lib添加到链接器设置中.

当然,您需要一个工具来捕获和显示探查器数据.为此,您可以使用Platform Builder(5.0或6.0)的评估版(eval是免费的)或eVC 4.0(也是免费的).

有关探查器用法的更多信息,来自CE核心团队的Sue Loh在博客上发表了一些博文.



2> Shane Powell..:

我还没有找到任何用于WindowsMo​​bile的本地开发工具.

我发现的最接近的是EnTrek工具集(CodeSnitch/ProcMan),但它们并不是真正的分析工具. http://www.entrek.com/products.htm

我们所做的是使用VC++的Vistual Studio"/ callcap"开关为我们自己的产品构建自己的分析支持.使用该开关,您可以构建一个分析库,无论您喜欢什么,都可以转储计时和计数.它对我们来说效果很好,但有时这些钩子函数的开销可能太大,并且它可能会将时序结果偏向大量函数调用的区域.

来自MSDN文档:

/ callcap选项使编译器在每个函数的开头和结尾插入对分析钩子的调用.

您必须在没有callcap开关的情况下编译分析钩子.如果使用callcap开关编译分析钩子函数,函数将对自己执行无限递归调用.

下面的代码示例Callcaphooks.c显示了一个分析钩子函数_CAP_Enter_Function,用于没有callcap的编译.

// File: callcaphooks.c

#include 
int main();

void _CAP_Enter_Function(void *p) 
{
    if (p != main) 
        printf("Enter function   (at address %p) at %d\n", 
            p, GetTickCount());
        return;
}
void _CAP_Exit_Function(void *p) 
{
    if (p != main) 
        printf("Leaving function (at address %p) at %d\n", 
            p, GetTickCount());
    return;
}

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有