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

cms 多个网站目前中国建筑行业现状

cms 多个网站,目前中国建筑行业现状,做一个网站得做多少个页面,wordpress直接连接数据库lambdas 排序与Peter Lawrey合作撰写 。 几天前#xff0c;我对使用新的Java8声明式的排序性能提出了一个严重的问题。 在这里查看博客文章。 在那篇文章中#xff0c;我仅指出了问题#xff0c;但在这篇文章中#xff0c;我将更深入地了解和解释问题的原因。 这将通过使用… lambdas 排序 与Peter Lawrey合作撰写 。 几天前我对使用新的Java8声明式的排序性能提出了一个严重的问题。 在这里查看博客文章。 在那篇文章中我仅指出了问题但在这篇文章中我将更深入地了解和解释问题的原因。 这将通过使用声明式样式重现问题然后一点一点地修改代码来完成直到我们消除了性能问题并保留了使用旧样式比较所期望的性能。 回顾一下我们对此类的实例进行排序 private static class MyComparableInt{private int a,b,c,d;public MyComparableInt(int i) {a i%2;b i%10;c i%1000;d i;}public int getA() return a;public int getB() return b;public int getC() return c;public int getD() return d; } 使用声明性的Java 8样式如下大约需要6秒钟才能排序10m个实例 List mySortedList myComparableList.stream().sorted(Comparator.comparing(MyComparableInt::getA).thenComparing(MyComparableInt::getB).thenComparing(MyComparableInt::getC).thenComparing(MyComparableInt::getD)).collect(Collectors.toList()); 使用自定义排序器如下需要约1.6秒的时间来排序10m个实例。 这是排序的代码调用 List mySortedList myComparableList.stream().sorted(MyComparableIntSorter.INSTANCE).collect(Collectors.toList()); 使用此自定义比较器 public enum MyComparableIntSorter implements ComparatorMyComparableInt{INSTANCE;Overridepublic int compare(MyComparableInt o1, MyComparableInt o2) {int comp Integer.compare(o1.getA(), o2.getA());if(comp0){comp Integer.compare(o1.getB(), o2.getB());if(comp0){comp Integer.compare(o1.getC(), o2.getC());if(comp0){comp Integer.compare(o1.getD(), o2.getD());}}}return comp;}} 让我们在类中创建一个comparing方法以便我们可以更紧密地分析代码。 comparing方法的原因是允许我们轻松交换实现但调用代码保持不变。 在所有情况下这都是comparing方法的调用方式 List mySortedList myComparableList.stream().sorted(comparing(MyComparableInt::getA,MyComparableInt::getB,MyComparableInt::getC,MyComparableInt::getD)).collect(Collectors.toList()); 比较的第一个实现几乎是jdk中的一个副本。 public static T, U extends Comparable? super U ComparatorT comparing(Function? super T, ? extends U ke1,Function? super T, ? extends U ke2,Function? super T, ? extends U ke3,Function? super T, ? extends U ke4){return Comparator.comparing(ke1).thenComparing(ke2).thenComparing(ke3).thenComparing(ke4);} 毫不奇怪这花了大约6秒钟才能完成测试-但是至少我们重现了该问题并为进一步进行奠定了基础。 让我们看一下该测试的飞行记录 可以看出有两个大问题 lambda$comparing方法中的性能问题 反复调用Integer.valueOf 自动装箱 让我们尝试处理比较方法中的第一个方法。 乍一看这似乎很奇怪因为当您查看代码时该方法中没有发生太多事情。 然而随着代码找到该函数的正确实现虚拟表查找将在这里广泛进行。 当从一行代码中调用多种方法时将使用虚拟表查找。 我们可以通过下面的comparing实现消除这种延迟源。 通过扩展Function接口的所有用途每一行只能调用一个实现因此可以内联该方法。 public static T, U extends Comparable? super U ComparatorT comparing(Function? super T, ? extends U ke1,Function? super T, ? extends U ke2,Function? super T, ? extends U ke3,Function? super T, ? extends U ke4){return (c1, c2) - {int comp compare(ke1.apply(c1), ke1.apply(c2));if (comp 0) {comp compare(ke2.apply(c1), ke2.apply(c2));if (comp 0) {comp compare(ke3.apply(c1), ke3.apply(c2));if (comp 0) {comp compare(ke4.apply(c1), ke4.apply(c2));}}}return comp;};} 通过展开方法JIT应该能够内联方法查找。 确实时间几乎减半到3.5秒让我们看一下此运行的飞行记录 当我第一次看到此消息时我感到非常惊讶因为到目前为止我们还没有进行任何更改来减少对Integer.valueOf的调用但是该百分比已经下降了 实际上发生的事情是由于我们进行了允许内联的更改已对Integer.valueOf进行了内联并且将Integer.valueOf花费的时间归咎于调用程序 lambda$comparing 后者已对被调用者 Integer.valueOf 。 这是事件探查器中的一个常见问题因为他们可能会误解应归咎于哪种方法尤其是在进行内联时。 但是我们知道在之前的Flight Recording Integer.valueOf 已突出显示因此让我们通过comparing实现comparing删除看看是否可以进一步减少时间。 return (c1, c2) - {int comp compare(ke1.applyAsInt(c1), ke1.applyAsInt(c2));if (comp 0) {comp compare(ke2.applyAsInt(c1), ke2.applyAsInt(c2));if (comp 0) {comp compare(ke3.applyAsInt(c1), ke3.applyAsInt(c2));if (comp 0) {comp compare(ke4.applyAsInt(c1), ke4.applyAsInt(c2));}}}return comp; }; 通过这种实现时间可以缩短到1.6s这是我们使用自定义比较器可以实现的。 让我们再次查看此运行的飞行记录 现在所有时间都在使用实际的排序方法而不是开销。 总之我们从这次调查中学到了一些有趣的事情 由于自动装箱和虚拟表查找的成本在某些情况下使用新的Java8声明式排序将比编写自定义比较器慢4倍。 FlightRecorder虽然比其他分析器要好有关此问题请参阅我的第一篇博客文章 但仍将时间归因于错误的方法尤其是在进行内联时。 翻译自: https://www.javacodegeeks.com/2015/01/java8-lambdas-sorting-performance-pitfall-explained.htmllambdas 排序
http://www.huolong8.cn/news/144789/

相关文章:

  • 网站一级目录wordpress多用户商城
  • 成都网站排名提升百度经验悬赏令
  • 网站注册平台水墨风格网站欣赏
  • 原型样网站财经门户网站开发
  • 手机制作网站app网站开发的程序平台
  • 网站设计排版怎么做西安seo代理商
  • 惠州住房和城乡建设部网站淘宝主图制作
  • 一个人怎么做网站简约wordpress免费主题
  • 网站网上商城建设方案百度浏览器官网下载并安装
  • 网站建设实训内容天猫商城官网首页
  • 设计公司网站 唐山网络营销都有哪些内容
  • 网站开发需要哪些技能竞价托管魏大帅
  • 扬州网站建设icp备网站制作 南京
  • 自己做网站推广费用大铜川商城网站建设
  • 建设网站一般要多久网络推广引流是做什么工作
  • 营销型网站的特点网络技术学习网站
  • 明年做哪些网站致富刷seo快速排名
  • asp公司网站网站是新媒体平台吗
  • 泉州建站公司模板莆田人做的网站
  • 江苏建设人才网官方网站学做网站论坛插件
  • 专业做网站公司怎么样网站asp文件只读
  • 在线海报设计网站网页制作哪家服务好
  • 改则网站建设wordpress quizzin
  • 网站建设模版唐山网站建设求职简历
  • 旅游网站专业化建设的要点百度本地推广
  • 手机网站设计制作服务快速建站哪个平台好
  • 美丽乡村建设网站模板网站建设企业建站模板
  • 微信网站用什么软件做百度应用
  • 普通电脑可以做网站服务器广州音乐制作公司
  • 网站布局优化策略电子商务网站建设步骤有什么