代码分析性分析工具,用于Windows CE/移动
-
05-07-2019 - |
题
什么工具你知道,其他比那些在Visual Studio,分析业绩的瓶颈,在Windows CE/移动应用程序?我在寻找的东西喜欢AQTime CE/移动,配置文件C/C++编制应用程序原代码。
解决方案
我还没有找到任何这样的工具为WindowsMobile为本地发展。
最近的我发现是EnTrek工具(CodeSnitch/ProcMan),但他们不是真的分析工具。http://www.entrek.com/products.htm
我们怎么做的就是建立自己的分析支持,进入我们自己的产品使用的Vistual工作室"/callcap"关于VC++.使用那个开关,你可以建立一个分析库甩出时间并计算,无论你喜欢的。它主要工作了好的我们,但是有时的开销这些钩子函数可能太多,它可以扭曲时结果领域的大量功能的电话。
从MSDN文档:
这/callcap选择的原因 编译器插入的电话分析 钩在一开始和结束的每一个 功能。
你必须编制分析挂钩 没有callcap开关。如果你 编写分析钩子函数 与callcap交换机的功能 将进行无限recursive calls 自己。
以下代码的例子, Callcaphooks.c显示一个分析挂钩 功能,_CAP_Enter_Function, 汇编不callcap.
// 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;
}
其他提示
Windows CE支持远程呼叫分析器(如果OEM已添加支持它)开箱即用。我相信,WinMo图像通常已经在图像中得到了支持。对于CE,您需要IMAGEPROFILER环境变量集(使用项目属性)。
MSDN中不清楚的是如何检测不是使用Platform Builder构建的应用程序,但它实际上非常简单。您必须将/ callcap swith添加到编译器命令行,并将cecap.lib添加到链接器设置。
当然,您需要一个工具来捕获和显示探查器数据。为此,您可以使用Platform Builder的评估版( 5.0 或 6.0())(eval是免费的)或 eVC 4.0 (也是免费的)。
有关探查器使用情况的更多信息,来自CE核心团队的Sue Loh在博客上发表了一些博文。
我为Windows Mobile编写了一个Call Graph探测器。它目前(截至2010年1月)处于测试阶段,可以免费下载。
HTH
-Zak
如果您正在进行.NET CF开发,请查看适用于.NET CF 3.5的Power Toys 用于帮助您查明瓶颈的实用程序,尤其是与内存相关的瓶颈。