测试函数运行时间


测试函数运行时间

时间就是金钱,效率就是生命!程序的好坏一定程度上取决于它的执行效率。

这是我在网上找到的一个通过函数测试函数执行时间的方法,这个应该是比较原始的,可能编译器也有这个功能了。但是深入去理解一些东西还是好的,我觉得这也是我要努力的方向。

demo

clock():捕捉从程序开始运行到clock()被调用时所耗费的时间。这个时间单位是clock tick,即“时钟打点”。
常数CLK_TCK:机器时钟每秒所走的时钟打点数。

程序

#include <iostream>
#include <time.h>

using namespace std;

clock_t start, stop;//clock_t是clock()函数返回的变量类型
double duration;//记录函数运行时间,以秒为单位

void PrintN(int N) {
	//不在测试范围内的准备工作写在clock()调用之前
	void PrintN(int N) {
	if (N) {
		PrintN(N - 1);
		cout << N << endl;
	}
	return;
}

int main() {
	int N;
	cin >> N;

	start = clock();
	PrintN(N);
	stop = clock();
	duration = ((double)(stop - start)) / CLK_TCK;
	cout << duration << endl;

	/*其他不在测试范围的处理写在后面,例如输出duration*/
	return 0;
}

这是一个递归程序,经测试递归程序略慢于普通的循环,而且当N大于等于100000时递归程序崩溃了,栈溢出了。

因此尽管递归有它的优点,但选择递归时要慎重。

欢迎访问个人博客:suzhigao66.top

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值