c++反汇编学习笔记-------------篇外1、if和switch效率的实测
2015-09-20 11:55
267 查看
学完 c++反汇编学习笔记———-3.流程控制这篇之后就做了if-else和switch的效率测试,实际检验了一下这两种多分支方式在debug模式下代码的效率:
因为代码过长,给出测试的部分代码如下
可以明显看出 switch的效率高了很多!验证了所学知识
因为代码过长,给出测试的部分代码如下
#define IF(x,y) if(x==y)fprintf(in,"%d",y) #define ELIF(x,y) else if(x==y)fprintf(in,"%d",y) int testif() { FILE*in=fopen("in.txt","w"); int s=0; for(int cas=0;cas<1000000;cas++) { int t=rand()%10000; int a=clock(); IF(t,1); ELIF(t,2); ELIF(t,3); ELIF(t,4); /* 共10000条ELIF,省略 */ s+=clock()-a; } printf("%d\n",s); return s; } #define CASE(x) case x:fprintf(in,"%d",x);break int testswhitch() { FILE*in=fopen("in.txt","w"); int s=0; for(int cas=0;cas<1000000;cas++) { int t=rand()%10000; int a=clock(); switch(t) { CASE(0); CASE(1); /* 共10000条CASE,省略 */ } s+=clock()-a; } printf("%d\n",s); return s; } int main() { testif(); testswhitch(); testif(); testswhitch(); testif(); testswhitch(); testif(); testswhitch(); testif(); testswhitch(); }
可以明显看出 switch的效率高了很多!验证了所学知识
相关文章推荐
- Lua和C语言的交互详解
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中计算正弦的相关函数总结
- 使用C语言详解霍夫曼树数据结构
- 探讨C语言的那些小秘密之断言
- C语言实现BMP转换JPG的方法
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置
- C语言查找数组里数字重复次数的方法
- C语言泛型编程实例教程
- C语言中使用lex统计文本文件字符数
- 在C语言中转换时间的基本方法介绍
- C语言进制转换代码分享