测试结果: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 性能测试的更多相关文章

  1. 插入排序的性能测试对比(C与C++实现)

    一.概述: [标题]学生成绩管理的设计与实现 [开发语言]C.C++ [主要技术]结构体.STL [基本功能]实现对学生成绩类的基本操作:增加.删除.查询.排序 [测试数据]功能测试:按提示输入5组正 ...

  2. 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/ 性能测试指南 ...

  3. 使用Loadrunner对IBM MQ进行性能测试

    一.概述         使用Loadrunner对IBM MQ进行性能测试,需要用到java vuser以及java编码知识.此次先介绍什么是IBM MQ,然后java vuser的使用与配置细节, ...

  4. 品味性能之道<九>:利用Loadrunner编写socket性能测试脚本简述

            一.概述         Loadrunner拥有极为丰富的工具箱,供予我们制造出各种奇妙魔法的能力.其中就有此次要讨论的socket套接字操作.     二.socket概述     ...

  5. 品味性能之道<十一>:JAVA中switch和if性能比较

    通常而言大家普遍的认知里switch case的效率高于if else.根据我的理解而言switch的查找类似于二叉树,if则是线性查找.按照此逻辑推理对于对比条件数目大于3时switch更优,并且对 ...

  6. 多个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. ...

  7. 品味性能之道<一>:性能测试思维与误区

           <java performance><品悟性能优化 oracle><面向模式的软件架构-模式系统>读书笔记应用调优分享.      性能问题的解决,首 ...

  8. 网站性能测试PV到TPS的转换以及TPS的波动和淘宝性能测试要点

    <淘宝性能测试白皮书V0.3> 性能测试的难点不在于测,在于测出的数据和实际的对照关系,以及测试出来的数据对性能的评估(到底是好,还是不好). 淘宝性能测试白皮书,解决了我的4个问题:1. ...

  9. Mininet实验 设置带宽之简单性能测试

    原文:设置带宽之简单性能测试 这个实验主要还是说明通过python程序来设定Mininet中的链路带宽. 目的: Python脚本实现自定义拓扑 设置链路的带宽.延迟及丢包率 iperf测试主机间的带 ...

随机推荐

  1. Fruits【水果】

    Fruits Many of us love July because it's the month when nature's berries and stone fruits are in abu ...

  2. POJ 3977 折半枚举

    链接: http://poj.org/problem?id=3977 题意: 给你n个数,n最大35,让你从中选几个数,不能选0个,使它们和的绝对值最小,如果有一样的,取个数最小的 思路: 子集个数共 ...

  3. Apache 设置二级域名

    开启重写模块 LoadModule rewrite_module modules/mod_rewrite.so 编辑配置 NameVirtualHost *:80 <VirtualHost *: ...

  4. spring源码学习中的知识点

    一.循环依赖 循环依赖就是循环引用,就是两个或多个bean之间互相持有对方. 1.构造器循环依赖 表示通过构造器注入造成的循环依赖,此依赖是无法解决的,只能抛出BeanCurrentlyInCreat ...

  5. 1-Linux运维人员要求

    linux 运维: 1.linux基础操作命令2.linux基础服务搭建3.文本处理命令4.shell脚本编程 python perl php5.数据库 mysql oracle6.lvs集群 热备 ...

  6. 做出一个SwitchButton的效果,并详细学习一下onDraw(Canvas canvas)方法的使用

    代码的灵感和原理主要来自于android自定义开关控件-SlideSwitch http://blog.csdn.net/singwhatiwanna/article/details/9254309这 ...

  7. 剑指Offer - 九度1360 - 乐透之猜数游戏

    剑指Offer - 九度1360 - 乐透之猜数游戏2014-02-05 19:54 题目描述: 六一儿童节到了,YZ买了很多丰厚的礼品,准备奖励给JOBDU里辛劳的员工.为了增添一点趣味性,他还准备 ...

  8. (原)Skeletal With DirectX12

    @author: 白袍小道 @来源: Advanced Animation with DirectX, 游戏引擎架构         (暗影不解释连招)     引言: 3D模型动画的基本原理是让模型 ...

  9. Buildroot ipa image

    参考: https://github.com/csmart/ironic-python-agent/tree/buildroot/imagebuild/buildroot#buildroot-iron ...

  10. UTXO是什么?

    以易于理解的方式解释了比特币交易中的"UTXO" UTXO 2017年11月1日 让我们看看当你发一点硬币时会发生什么. 比特币交易通过UTXO执行.通过在比特硬币的所有交易中新生 ...