测试结果: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. strak组件(5):为列表定制预留钩子方法

    效果图:  新增函数 def get_list_display(self): 获取页面上应该显示的列,预留的自定义扩展,例如:以后根据用户的不同显示不同的 一.stark组件 stark/servic ...

  2. Apache Spark 2.2.0 中文文档

    Apache Spark 2.2.0 中文文档 - 快速入门 | ApacheCN Geekhoo 关注 2017.09.20 13:55* 字数 2062 阅读 13评论 0喜欢 1 快速入门 使用 ...

  3. runloop的mode作用是什么?

    用来控制一些特殊操作只能在指定模式下运行,一般可以通过指定操作的运行mode来控制执行时机,以提高用户体验 系统默认注册了5个Mode kCFRunLoopDefaultMode:App的默认Mode ...

  4. DOS程序员手册(九)

    第14章参考手册概述     本书余下的章节将向读者们介绍BIOS.DOS各种各样API函数和服务,作为一名程 序员,了解和掌握这些知识是很有好处的.在所介绍的参考手册中,每部手册都汇集了大 量的资源 ...

  5. 图解-Excel的csv格式特殊字符处理方式尝试笔记(个人拙笔)

    Excel格式如下.(截图来自,WPS Office) CSV是一种文本格式的Excel文档格式.不支持Excel的字体特效(比如加粗,颜色)等等的保存. 每一行数据用 "\n" ...

  6. iOS笔记059 - 网络总结

    网络 基本概念 客户端:client 服务器:server 请求:request 响应:response 过程 客户端 -> 发送请求 -> 服务器(连接数据库) 服务器 -> 发送 ...

  7. IOS与Unity交互

    学习了宣雨松的两篇Unity和IOS交互的文章,自己动手做了下,遇到了些问题,在此记录 先说IOS发送消息给Unity:(文章地址:http://www.xuanyusong.com/archives ...

  8. Set(), Get() 真正的目的

    在各种面向对象编程中,都有 Set(), Get() 两种方法. 1 常见理解 1 为了保证安全性 2 为了规范代码 其实这些理解都是对的.具体看我们从哪个角度去理解这个内容. 2 个人理解 2.1 ...

  9. rownum浅谈(二)

    上篇说到rownum和order by及索引列的关系,明白了通过构建一个子查询把查询结果固定住再取数就可以了 .还是取最近10条创建的用户: select * from (select u.* fro ...

  10. JSP/Servlet Web 学习笔记 DayFour

    Servlet概述 Servelt是使用Java Servlet应用程序接口及相关类和方法的Java程序. Servlet是用Java编写的Server端程序,它与协议和平台无关.Servlet运行于 ...