欢迎关注VxWorks567
如转发 请标明出处!
ScopeTools里还有个成员叫做ProfileScope,从Vx67开始,改名为Performance Profiler
使用这个工具能看到
- CPU在哪里做了什么
- 正在调用哪些函数
- 每个函数又依次调用了哪些函数
- 整个调用栈中,每一级占用CPU的百分比 它提供了三个视图
- System view,使用树形结构展示完整的调用栈
- Function view,每个线程的函数调用列表
- Process view,进程视图
还是跑个例子,就知道它怎么用了,例如这个代码,加到VxWorks 6里
代码语言:javascript复制/*
* 公众号 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好多年!
一起学习 共同进步!