Java十大简单性能优化( 四 )

带走

在上面的示例中 , 如果您使用显式StringBuilder实例 , 或者您依赖Java编译器为您创建隐式实例 , 则可能完全不相关 。 但是请记住 , 我们在NOPE分支中 。 我们浪费的每个CPU周期都像GC这样愚蠢的事情 , 或者分配StringBuilder的默认容量都是浪费N x O x P时间 。

根据经验 , 请始终使用StringBuilder而不是+运算符 。 如果可以的话StringBuilder , 如果String构建起来比较复杂 , 则可以将引用保留在几种方法中 。 这是jOOQ在生成复杂的SQL语句时所做的 。 只有一个StringBuilder“遍历”您的整个SQLAST(抽象语法树)

为了大声喊叫 , 如果您仍然有StringBuffer参考文献 , 请务必将其替换为StringBuilder 。 您实际上几乎不需要同步正在创建的字符串 。

2.避免使用正则表达式

正则表达式相对便宜且方便 。 但是 , 如果您位于NOPE分支中 , 那么它们将是您最糟糕的事情 。 如果绝对必须在计算密集型代码节中使用正则表达式 , 则至少要缓存该Pattern引用 , 而不要一直重新编译它:

推荐阅读