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测试主机间的带 ...
随机推荐
- Fruits【水果】
Fruits Many of us love July because it's the month when nature's berries and stone fruits are in abu ...
- POJ 3977 折半枚举
链接: http://poj.org/problem?id=3977 题意: 给你n个数,n最大35,让你从中选几个数,不能选0个,使它们和的绝对值最小,如果有一样的,取个数最小的 思路: 子集个数共 ...
- Apache 设置二级域名
开启重写模块 LoadModule rewrite_module modules/mod_rewrite.so 编辑配置 NameVirtualHost *:80 <VirtualHost *: ...
- spring源码学习中的知识点
一.循环依赖 循环依赖就是循环引用,就是两个或多个bean之间互相持有对方. 1.构造器循环依赖 表示通过构造器注入造成的循环依赖,此依赖是无法解决的,只能抛出BeanCurrentlyInCreat ...
- 1-Linux运维人员要求
linux 运维: 1.linux基础操作命令2.linux基础服务搭建3.文本处理命令4.shell脚本编程 python perl php5.数据库 mysql oracle6.lvs集群 热备 ...
- 做出一个SwitchButton的效果,并详细学习一下onDraw(Canvas canvas)方法的使用
代码的灵感和原理主要来自于android自定义开关控件-SlideSwitch http://blog.csdn.net/singwhatiwanna/article/details/9254309这 ...
- 剑指Offer - 九度1360 - 乐透之猜数游戏
剑指Offer - 九度1360 - 乐透之猜数游戏2014-02-05 19:54 题目描述: 六一儿童节到了,YZ买了很多丰厚的礼品,准备奖励给JOBDU里辛劳的员工.为了增添一点趣味性,他还准备 ...
- (原)Skeletal With DirectX12
@author: 白袍小道 @来源: Advanced Animation with DirectX, 游戏引擎架构 (暗影不解释连招) 引言: 3D模型动画的基本原理是让模型 ...
- Buildroot ipa image
参考: https://github.com/csmart/ironic-python-agent/tree/buildroot/imagebuild/buildroot#buildroot-iron ...
- UTXO是什么?
以易于理解的方式解释了比特币交易中的"UTXO" UTXO 2017年11月1日 让我们看看当你发一点硬币时会发生什么. 比特币交易通过UTXO执行.通过在比特硬币的所有交易中新生 ...