首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于Windows CE/Mobile的代码分析/性能分析工具

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

Stack Overflow用户
提问于 2008-11-02 00:06:07
回答 4查看 7.5K关注 0票数 6

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-11-02 04:24:20

我还没有找到任何这样的用于WindowsMobile本机开发的工具。

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

我们所做的是使用VC++的Vistual Studio "/callcap“开关将自己的分析支持构建到我们自己的产品中。使用该开关,您可以构建一个性能分析库,它可以根据您的喜好输出计时和计数。它对我们来说大部分工作都很好,但有时这些钩子函数的开销可能太大,它可能会将计时结果扭曲到大量函数调用的区域。

从MSDN文档:

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

必须在不使用callcap开关的情况下编译分析挂钩。如果使用callcap开关编译分析钩子函数,这些函数将对自身执行无限的递归调用。

下面的代码示例Callcaphooks.c显示了一个分析挂钩函数_CAP_Enter_Function,用于在不使用CallCap.c的情况下进行编译。

代码语言:javascript
运行
复制
// File: callcaphooks.c

#include <stdio.h>
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;
}
票数 5
EN

Stack Overflow用户

发布于 2008-12-01 21:42:08

Windows CE现成支持Remote Call Profiler (如果原始设备制造商添加了对它的支持)。我相信,WinMo镜像通常已经在镜像中得到了支持。对于CE,您需要设置IMAGEPROFILER环境变量(使用项目属性)。

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

当然,您需要一个工具来捕获和显示分析器数据。为此,您可以使用Platform Builder的评估版本(5.06.0) (评估是免费的)或eVC 4.0 (也是免费的)。

有关分析器使用的更多信息,CE核心团队的Sue Loh已经在博客上发表了一些关于它的信息。

票数 9
EN

Stack Overflow用户

发布于 2010-01-27 05:43:13

我已经为Windows Mobile编写了一个调用图分析器。它目前(截至2010年1月)处于Beta阶段,可以免费下载。

http://www.codeprophet.co.cc

HTH

-Zak

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/256291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档