switch与if 性能测试
测试结果: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效果如下,






switch与if 性能测试的更多相关文章
- 插入排序的性能测试对比(C与C++实现)
一.概述: [标题]学生成绩管理的设计与实现 [开发语言]C.C++ [主要技术]结构体.STL [基本功能]实现对学生成绩类的基本操作:增加.删除.查询.排序 [测试数据]功能测试:按提示输入5组正 ...
- Jmeter:性能测试指南(转)
http://yukinami.github.io/2015/11/26/%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95%E6%8C%87%E5%8D%97/ 性能测试指南 ...
- 使用Loadrunner对IBM MQ进行性能测试
一.概述 使用Loadrunner对IBM MQ进行性能测试,需要用到java vuser以及java编码知识.此次先介绍什么是IBM MQ,然后java vuser的使用与配置细节, ...
- 品味性能之道<九>:利用Loadrunner编写socket性能测试脚本简述
一.概述 Loadrunner拥有极为丰富的工具箱,供予我们制造出各种奇妙魔法的能力.其中就有此次要讨论的socket套接字操作. 二.socket概述 ...
- 品味性能之道<十一>:JAVA中switch和if性能比较
通常而言大家普遍的认知里switch case的效率高于if else.根据我的理解而言switch的查找类似于二叉树,if则是线性查找.按照此逻辑推理对于对比条件数目大于3时switch更优,并且对 ...
- 多个IoC容器适配器设计及性能测试(Castle.Windsor Autofac Spring.Core)
[转]多个IoC容器适配器设计及性能测试和容器选择 1. 采用的IoC容器和版本 Autofac.2.6.3.862 Castle.Windsor.3.1.0 Spring.Core.2.0.0 2. ...
- 品味性能之道<一>:性能测试思维与误区
<java performance><品悟性能优化 oracle><面向模式的软件架构-模式系统>读书笔记应用调优分享. 性能问题的解决,首 ...
- 网站性能测试PV到TPS的转换以及TPS的波动和淘宝性能测试要点
<淘宝性能测试白皮书V0.3> 性能测试的难点不在于测,在于测出的数据和实际的对照关系,以及测试出来的数据对性能的评估(到底是好,还是不好). 淘宝性能测试白皮书,解决了我的4个问题:1. ...
- Mininet实验 设置带宽之简单性能测试
原文:设置带宽之简单性能测试 这个实验主要还是说明通过python程序来设定Mininet中的链路带宽. 目的: Python脚本实现自定义拓扑 设置链路的带宽.延迟及丢包率 iperf测试主机间的带 ...
随机推荐
- 文件/etc/passwd,/etc/shadow,/etc/group
文件/etc/passwd /etc/shadow /etc/group 计算资源的使用(并不是所有的人都可以用这台计算机的) 权限:访问资源的的能力. 用户:获取资源或者权限的凭证. 用户的容器:关 ...
- 【笔记】objdump命令的使用
---恢复内容开始--- objdump命令是Linux下的反汇编目标文件或者可执行文件的命令,它还有其他作用,下面以ELF格式可执行文件test为例详细介绍: objdump -f test 显示t ...
- mybatis在where中比较复杂的判断
<if test="param.applicationStateInNumber != null and param.applicationStateInNumber != ''&qu ...
- G - Dreamoon and NightMarket Gym - 101234G 优先队列+思路
题目:题目链接 题意:给出n种食物,食物有自己的价格并且可以自由搭配,每天吃之前没吃过的花费最少的搭配,问第k天的花费. 思路:第k小我们考虑用优先队列处理,虽然n比较大,但由于1 ≤ K ≤ min ...
- spark练习--mysql的读取
前面我们一直操作的是,通过一个文件来读取数据,这个里面不涉及数据相关的只是,今天我们来介绍一下spark操作中存放与读取 1.首先我们先介绍的是把数据存放进入mysql中,今天介绍的这个例子是我们前两 ...
- Python 探测图片文件类型
Table of Contents 1. 探测图片类型 1.1. python magic 1.2. imghdr 1.3. PIL.Image 探测图片类型 今天遇到一个小问题,如何探测图片的文件类 ...
- Android Stadio 相关
这几天,电脑坏了.重装系统,慢慢的学到了很多Android stadio 的相关知识.总结一下吧: 1.gradle 编译工具:在工程的gradle/wrapper/gradle–wrapper.pr ...
- 教你一步学会安装Hue
一.简介 hue是一个开源的apache hadoop ui系统,由cloudear desktop演化而来,最后cloudera公司将其贡献给了apache基金会的hadoop社区,它基于pytho ...
- 架构师速成7.3-devops为什么很重要 分类: 架构师速成 2015-07-07 17:22 410人阅读 评论(0) 收藏
evops是一个很高大上的名字,其实说的简单点就是开发和运维本身就是一个团队的,要干就一起把事情干好.谁出了问题,网站都不行.作为一个架构师,必须要devops,而且要知道如何推行devops. 首先 ...
- [网站公告]1月10日1:00-7:00阿里云RDS维护会造成30秒闪断
大家好! 阿里云将于1月10号1:00-7:00(今天夜里)对杭州机房部分RDS实例所在的物理主机做维护操作,维护期间部分RDS实例会有1-2次闪断,每次闪断时间在30秒以内. 我们使用的RDS实例将 ...