DSP学习(6)—— CCS5.5测试代码运行时间

DSP学习(6)—— CCS5.5测试代码运行时间


文章目录

  • DSP学习(6)—— CCS5.5测试代码运行时间
  • 前言
    • 法一:
      • 1. 先对程序编译,然后debug,在要测试的代码段设置断点;
      • 2. 选择Run——Clock——Setup, 选择手动reset
      • 3. 程序运行后,点击“Run——Clock——Enable”,这样,在编译器右下角或者左下角会出现时钟标志;
      • 4. 点击运行,光标到下图位置,并在右下角显示时钟值;
      • 5. 点击“Run——Clock——Reset”,将时钟时间复位为0;因为这个时候的时钟值表示的是从程序启动到这个断点运行的周期数,将其复位后继续运行到下一个断点正好运行了我们所需要查看时间的整个函数,显示时间为22919个时钟周期。
      • 6. 要知道具体的时间还要去查看CPU时钟频率。打开工程.cfg文件,进入Runtime设置,查看CPU时钟频率,周期数/时钟频率即为运行时间。
    • 法二:C语言 计算程序运行时间(精确到毫秒/微秒)


前言

文章参考:https://jingyan.baidu.com/article/1612d5009c004ae20e1eee21.html

在CCS程序编译中,有时需要检查某个函数或代码的运行时间,这儿演示了如何查看的方法。


例如程序中有如下代码,要检查这段程序的运行时间;
DSP学习(6)—— CCS5.5测试代码运行时间_第1张图片

法一:

1. 先对程序编译,然后debug,在要测试的代码段设置断点;

2. 选择Run——Clock——Setup, 选择手动reset

DSP学习(6)—— CCS5.5测试代码运行时间_第2张图片

3. 程序运行后,点击“Run——Clock——Enable”,这样,在编译器右下角或者左下角会出现时钟标志;

DSP学习(6)—— CCS5.5测试代码运行时间_第3张图片
DSP学习(6)—— CCS5.5测试代码运行时间_第4张图片

4. 点击运行,光标到下图位置,并在右下角显示时钟值;

DSP学习(6)—— CCS5.5测试代码运行时间_第5张图片

5. 点击“Run——Clock——Reset”,将时钟时间复位为0;因为这个时候的时钟值表示的是从程序启动到这个断点运行的周期数,将其复位后继续运行到下一个断点正好运行了我们所需要查看时间的整个函数,显示时间为22919个时钟周期。

DSP学习(6)—— CCS5.5测试代码运行时间_第6张图片

6. 要知道具体的时间还要去查看CPU时钟频率。打开工程.cfg文件,进入Runtime设置,查看CPU时钟频率,周期数/时钟频率即为运行时间。

DSP学习(6)—— CCS5.5测试代码运行时间_第7张图片

法二:C语言 计算程序运行时间(精确到毫秒/微秒)

转自:链接

精确到微秒时间

#include<stdio.h>
#include <windows.h>
int main() {
	int a[10002];
	int i = 0;
	double run_time;
	_LARGE_INTEGER time_start;	//开始时间
	_LARGE_INTEGER time_over;	//结束时间
	double dqFreq;		//计时器频率
	LARGE_INTEGER f;	//计时器频率
	QueryPerformanceFrequency(&f);
	dqFreq=(double)f.QuadPart;
	QueryPerformanceCounter(&time_start);	//计时开始
	for( i = 1; i <= 10000; i++)a[i]=i;	//要计时的程序
	QueryPerformanceCounter(&time_over);	//计时结束
	run_time=1000000*(time_over.QuadPart-time_start.QuadPart)/dqFreq;
	//乘以1000000把单位由秒化为微秒,精度为1000 000/(cpu主频)微秒
	printf("\nrun_time:%fus\n",run_time);
	return 0;
}

精确到毫秒时间

#include<stdio.h>
#include <stdlib.h>//用到rand()函数
#include<time.h>   //用到clock()函数
int main() {
	int begintime,endtime;
	int i = 0;
	int a[1002];
	begintime=clock();	//计时开始
	for( i = 1; i <= 1000; i++){//要计时的程序
		a[i] = rand()%200-100;//产生-100到+100之间的随机数
		printf("  %d",a[i]);
	}
	endtime = clock();	//计时结束
	printf("\n\nRunning Time:%dms\n", endtime-begintime);
	return 0;
}

你可能感兴趣的:(学习)