switch与if 性能测试
2024-08-22 13:35:18
测试结果:switch性能更高。
测试过程:新建一个Win32 Console Application, 在cpp文件中添加下面代码
#include "stdafx.h"
#include <Windows.h> void SwitchTime(int a)
{
for (int i = ; i < ; ++i)
{
switch(a)
{
case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; case :
a = ;
break; default:
a = ;
break;
}
}
} void IfTime(int a)
{
for (int i = ; i < ; ++i)
{
if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else if ( == a)
{
a = ;
}
else
{
a = ;
}
}
} int _tmain(int argc, _TCHAR* argv[])
{
unsigned long switchBegin= ::GetTickCount();
SwitchTime();
unsigned long switchEnd= ::GetTickCount(); unsigned long ifBegin= ::GetTickCount();
IfTime();
unsigned long ifEnd= ::GetTickCount(); char result[];
memset(result, , sizeof(result));
sprintf(result, "SwitchTime: %d ms, IfTime: %d ms", switchEnd - switchBegin, ifEnd - ifBegin);
MessageBoxA(NULL, result, "switch与if 性能测试", MB_OK);
return ;
}
分别测试输入值0、10、19、20、-1、200
运行exe效果如下,
最新文章
- [IOS swift对比oc]
- thinkphp的url地址区分大小写?
- SQL如何将A,B,C替换为&#39;A&#39;,&#39;B&#39;,&#39;C&#39;
- 【代码】verilog之:按键消抖
- Nginx重写规则指南 转
- XE10 Seattle error___seh_personality_v0
- NOIP2010 乌龟棋
- centos6搭建本地openstack软件源
- JVM菜鸟进阶高手之路十二(jdk9、JVM方面变化, 蹭热度)
- destoon各栏目调用汇总
- Dreamweaver cs6中文版完整安装步骤:
- event跨进程通信
- selenium用法详解
- Vue入门基础
- unittest的使用三——断言
- java中数组、集合、字符串之间的转换,以及用加强for循环遍历
- 使用css将图像居中
- <;a>;标签中的href如何调用js代码
- org.springframework.jdbc.UncategorizedSQLException
- 基于鸢尾花数据的PCA降维处理
热门文章
- C# WPF使一个窗口挡在最前面,且不处理此窗口就不能点击其他窗口
- C语言进阶—— 单引号和双引号14
- dategrip破解
- 翻译 | “扩展asm”——用C表示操作数的汇编程序指令
- Python logging 模块简介
- ClassNotFountException 与 NoClassDefineError
- 4x4矩阵键盘 扫描程序
- linux socket下send()&;recv()调用
- 剑指Offer - 九度1391 - 顺时针打印矩阵
- 《Cracking the Coding Interview》——第9章:递归和动态规划——题目2