作家
登录

Java程序员应知道的十条Java优化策略,让你的系统健步如飞

作者: 来源: 2017-10-31 11:47:56 阅读 我要评论

for (Object candidate : someSet)

if (someOtherSet.contains(candidate))

// 即使采取Java 8也没有很大年夜赞助

result.add(candidate);

someSet.stream()

.filter(someOtherSet::contains)

.collect(Collectors.toSet());

有些人可能会对函数式编程和Java 8能赞助我们写出加倍简单、简洁的算法持有不合的看法。但这种看法不必定是对的。我们可以把敕令式的Java 7轮回转换成Java 8的Stream collection,然则我们照样采取了雷同的算法。但SQL风格的表达式则是不合的:

SomeSet INTERSECT SomeOtherSet

膳绫擎的代码在不合的引擎上可以有1000种不合的实现。我们今天所研究的是,在调用 INTERSECT 操作之前,加倍智能地将两个set主动的转化为 EnumSet 。甚至我们可以在不须要调用底层的 Stream.parallel() 办法的情况下进行并行 INTERSECT 操作。

总结

在这篇文┞仿中,我们评论辩论了关于N.O.P.E.分支的优化。比瘸李入嘉宾杂性的算法。作为jOOQ的开辟者,我们很乐于对SQL的生成进行优化。

  • 每条萌芽都用独一的StringBuilder来生成。

  • 模板引擎实际上处理的是字符而并非正则表达式。

  • 选择尽可能的应用数组,尤其是在对监听器进行迭代时。

  • 对JDBC的办法敬而远之。

  • 等等。

jOOQ处在“食物链的底端”,因为它是在分开JVM进入到DBMS时,被我们电脑法度榜样所调用的最后一个API。位于食物链的底端意味着任何一条线路在jOOQ中被履行时都须要 N x O x P 的时光,所以我要尽早进行优化。

我们的营业逻辑可能没有N.O.P.E.分支那么复杂。然则基本框架有可能十分复杂(本地SQL框架、本地库等)。所以须要按照我们今天提到的原则,用Java Mission Control 或其它对象进行复查,确认是否有须要优化的处所。



  推荐阅读

  Linux用户登录密码的生成

2017年架构师最重要的48个小时 | 8折倒计时 一、大年夜主动化需求说起对于这个问题,秉承实在用主义的精力,我本来也不会去深究。毕竟,安装的时刻会设置暗码,安装完毕后能经由过程passwd>>>详细阅读


本文标题:Java程序员应知道的十条Java优化策略,让你的系统健步如飞

地址:http://www.17bianji.com/lsqh/38303.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)