当前位置: 首页 > news >正文

长沙网站排名优化价格门头沟网站建设

长沙网站排名优化价格,门头沟网站建设,网页浏览加速器,友情链接交换条件通常而言大家普遍的认知里switch case的效率高于if else。根据我的理解而言switch的查找类似于二叉树#xff0c;if则是线性查找。按照此逻辑推理对于对比条件数目大于3时switch更优#xff0c;并且对比条件数目越多时switch的优势越为明显。一、测试目的最近与开发同学对于前…通常而言大家普遍的认知里switch case的效率高于if else。根据我的理解而言switch的查找类似于二叉树if则是线性查找。按照此逻辑推理对于对比条件数目大于3时switch更优并且对比条件数目越多时switch的优势越为明显。   一、测试目的 最近与开发同学对于前面提到的性能问题有着各自不同的见解为证明我的观点现设计如下测试场景验证 PS一个方法里多达65个if else   二、测试策略利用Junit4执行本次测试分别设计50个、70个、100个条件式测试每轮测试分别执行1千万、2千万、3千万、4千万、5千万和6千万次为了力求让每轮测试不受外部因素干扰每轮测试执行10次收集信息分析。 为了让java在纯净的环境中运行。同时关闭了QQ、360、chrome等应用软件。  三、测试环境 Java 版本信息 Java version 1.7.0_25 Java(TM) SE Runtime Environment (build 1.7.0_25-b17) Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode) Junit4 JVM配置信息 --launcher.XXMaxPermSize 256m -Dosgi.requiredJavaVersion1.6 -Xms512m -Xmx1024m 系统信息 Windows7 旗舰版 64位操作系统 设备信息 处理器Intel(R) Core(TM) i3-2328M CPU 2.20GHz 2.20 GHz 安装内存(RAM)4.00GB (3.90 GB 可用) 因此次不涉及硬盘读写故不记录硬盘信息 四、测试脚本 因篇幅所限测试脚本略有缩减。  1 import java.util.Calendar; 2 import java.util.GregorianCalendar; 3 import java.util.Random; 4 import org.junit.After; 5 import org.junit.Before; 6 import org.junit.Test; 7 public class ServerServiceTest { 8  Calendar calender_begin, calender_end; 9  Long time_begin, time_end; //记录测试开始时间结束时间10  int flagNumber  1000000;// 迭代数11  Random r  new Random();12  int i  new Random().nextInt(100);//生成随机种子13  Before14  public void setUp() throws Exception {15   calender_begin  new GregorianCalendar();16   time_begin  calender_begin.getTimeInMillis();17  }18  After19  public void tearDown() throws Exception {20   calender_end  new GregorianCalendar();21   time_end  calender_end.getTimeInMillis();22   System.out.println(time_end - time_begin);23  }24  Test25  public void ifTest() {26   for (int temp  0; temp  flagNumber; temp) {27    i  r.nextInt(100);28    if (i  0) {29    } else if (i  1) {30    } else if (i  2) {31    } else if (i  3) {32    } else if (i  4) {33    } else if (i  5) {34    } else if (i  6) {35    } else if (i  7) {36    } else if (i  8) {37    } else if (i  9) {38    } else if (i  10) {39    } 40   }41  }42  Test43  public void switchTest() throws InterruptedException {44   for (int temp  0; temp  flagNumber; temp) {45    i  r.nextInt(100);46    switch (i) {47    case 0:48     break;49    case 1:50     break;51    case 2:52     break;53    case 3:54     break;55    case 4:56     break;57    case 5:58     break;59    default:60     break;61    }62   }63  }64 } View Code  五、测试结果 以下是收集的测试数据时间单位毫秒ms。其实这种数据看起来很难看出问题所在。 条件式测试数迭代数 1 (ms) 2345678910avgmaxmin1006千万if469466474455477478466460464483469483455switch4434434414384434374414424394384414434375千万if399420394403408402403393410430406430393switch3673743703663743823813763733973763973664千万if344325326359320325324319319328329359319switch3023053003153023022983182973003043182973千万if255249240248249247250256251246249256240switch2282322272312302292272312282312292322272千万if211177183182181172174170175178180211170switch1651491551521541551551661511581561661491千万if179174176176169177176191173183177191169switch152156167161158151161161159161159167151706千万if424416440437427419417411416429424440411switch3893953873883883923973913923933913973875千万if368366352354351352350362355361357368350switch3273273263243283273243233303253263303234千万if321300295293284283281335276281295335276switch2592622602622592612592682602672622682593千万if219229226217220226215223217226222229215switch1991972031991991991972002001971992031972千万if149158152155177159159158161150158177149switch1361361321341451331331321361331351451321千万if86838781908877839585869577switch65676767687167686868687165506千万if374361363363362364376366372373367376361switch3473433413413383623403433433433443623385千万if324312306306341312312299307307313341299switch2892872852832912882902882902812872912814千万if287247251252265247248256252256256287247switch2392372362292432302352322282282342432283千万if193196195197203198201188200204198204188switch1841781811751731721761841931741791931722千万if128129133145133139139130131143135145128switch1171181181171151201141131161181171201131千万if81688275766869799175769168switch60576060596559626160606557 六、测试结果分析 纯数据的测试结果很难进行分析经过整理以后如下图 if-100为if执行100条件式测试数switch-100为switch执行100条件式测试数 根据此图表结果大家已经可能很清晰的看出If与Swtich的性能对比结果了。但是如此细微的性能差异实现了业务就行了何必关注这种费心又麻烦的事呢 哈哈哈性能测试更多时候也是沟通问题更是行政问题。   七、总结 这次验证过程其实就是一次简单的性能测试过程也就是——需求挖掘-明确目的-设计策略-准备环境-脚本编写-收集数据-结果分析-测试报告。此处略去的报告内容因为不需要什么报告了。哈哈哈大家懂的 就大量条件式的业务场景而言除了利用switch以外其实还可以用到枚举(enum)作为条件式抽象每个判断式导向为函数式(function)。可能哪天我心情好会把利用enum优化的代码给放出来。 2015-8-23 15:17:18 跟新 策略模式接口注入写的是伪代码没有严格的语法规范大家凑合着看。 interface Service{public void execute();public T T eval(); }public class Strategy{private static ConcrunthashmapString,function content new ConcrunthashmapString,function();public void register(String name,ClasT xxx){if(!content.has(name)){content.put(xxx);//这里隐去了反射生成对象的过程}}public void execute(String name){content.get(name).execute();}public void eval(String name){content.get(name).eval();} }class HelloServiceImpl implements Service{public void execute(){print hello world;}public String eval(){return hello world;} }class HiServiceImpl implements Service{public void execute(){print hi world;}public String eval(){return hi world;} }系列博客 品味性能之道一性能测试思维与误区品味性能之道二性能工程师可以具备的专业素养品味性能之道三方法论 品味性能之道四管理重于技术品味性能之道五SQL分析工具 品味性能之道六图形化SQL分析工具品味性能之道七索引基础品味性能之道八Loadrunner关联技巧与字符处理品味性能之道九利用Loadrunner编写socket性能测试脚本简述品味性能之道十Oracle Hint品味性能之道十一JAVA中switch和if性能比较深入理解Loadrunner中的Browser Emulation使用Loadrunner对IBM MQ进行性能测试怎么做性能测试--响应时间 转载于:https://www.cnblogs.com/snifferhu/p/3500864.html
http://www.pierceye.com/news/762794/

相关文章:

  • 过时的网站什么公司做企业网站
  • 最新企业网站搜索引擎优化是做什么
  • 提高网站公信力 单仁手机设计培训网站建设
  • asp.net网站管理系统域名注册报备
  • 买了个网站后怎么做如何提高 网站的点击量
  • 哪些行业网站推广做的多o2o商城源码
  • 北京seo站内优化电商网站前端页面响应式设计
  • 贵港seo关键词整站优化网站恶意攻击
  • 王磊网络网站建设公关
  • 怎么建网站做推广win网站建设
  • 在线做英语题的网站wordpress被设置不录入
  • 桃花岛网站是什么翻硬币网站怎么做
  • 做海报的网站有哪些内容windows同步wordpress
  • 制作网页的网站费用属于资本性支出吗安徽区块链虚拟币网站开发方案
  • 做网站前产品经理要了解什么搜索引擎优化免费
  • 广州网站建设技术方案营销网站推广策略
  • 郑州网站建设、中国菲律宾铁路项目
  • 潜江网站开发学校网站建设领导小组
  • 桂林临桂区建设局网站厦门 微网站建设公司哪家好
  • 如何用云服务器搭建个人网站有些人做网站不用钱的,对吗?
  • 月嫂网站建设方案建设网站询价对比表模板
  • 医院网站建设 价格低深圳市高端网站建设
  • 太原做学校网站的公司网站免费观看
  • 企业网络营销是什么seo教程百度云
  • wordpress 下载站模板高清免费观看电视网站
  • 网站后期维护怎么做招c1驾驶员300元一天
  • 番禺区移动端网站制作山西省两学一做网站
  • 网上销售 网站建设浙江创都建设有限公司网站
  • 网站商城的公司运营结构html5 app开发工具
  • 酒类网站建设方案案中山网站建设公司排名