欢迎关注VxWorks567
如转发 请标明出处!
ScopeTools里还有个成员叫做ProfileScope,从Vx67开始,改名为Performance Profiler
使用这个工具能看到
还是跑个例子,就知道它怎么用了,例如这个代码,加到VxWorks 6里
/*
* 公众号 VxWorks567
*/
#include <stdlib.h>
#include <taskLib.h>
int profileDelay = 1;
static int result;
static int duplicate(int number)
{
int counter,useless=0;
for(counter=0; counter<=(number * 40000); counter++)
{
useless++;
}
return (2 * number);
}
static int halve(int number)
{
int counter,useless=0;
for(counter=0; counter<=(number * 10000); counter++)
{
useless++;
}
return (number/2);
}
static int calculation(int number)
{
int toBeReturned;
if(number%2)
toBeReturned = duplicate(number);
else
toBeReturned = halve(number);
return(toBeReturned);
}
void testProfile()
{
for(;;)
{
result = calculation(rand());
taskDelay(profileDelay);
}
return;
}
代码很简单,为了避免被编译器优化掉,建议在工程属性中将优化选项关闭
然后启动VxWorks 6,在WorkBench里连接Target Connection,并右击选择Attach Performance Profiler
在WorkBench中央位置就会打开它的窗口。这时启动应用程序,几秒钟之后,就可以看到程序里CPU的使用情况了
可以看到例子testProfile()中duplicate()占用的CPU明显多于halve(),右击选择View Source还可以跳转到相应的源码语句
非常强大的工具,VxWorks卖的贵,是有原因滴
我是泰山 专注VX好多年!
一起学习 共同进步!