提高 Java 代码性能的各种技巧

来源:互联网 发布:淘宝直播镜像怎么下载 编辑:程序博客网 时间:2024/05/16 06:42

提高 Java 代码性能的各种技巧

Java 6,7,8 中的 String.intern – 字符串池

这篇文章将要讨论 Java 6 中是如何实现 String.intern 方法的,以及这个方法在 Java 7 以及 Java 8 中做了哪些调整。

提高 Java 代码性能的各种技巧


总结

  • 由于 Java 6 中使用固定的内存大小(PermGen)因此不要使用 String.intern() 方法

  • Java7 和 8 在堆内存中实现字符串池。这以为这字符串池的内存限制等于应用程序的内存限制。

  • 在 Java 7 和 8 中使用 -XX:StringTableSize 来设置字符串池 Map 的大小。它是固定的,因为它使用

    HashMap 实现。近似于你应用单独的字符串个数(你希望保留的)并且设置池的大小为最接近的质数并乘以 2 (减少碰撞的可能性)。它是的

    String.intern 可以使用相同(固定)的时间并且在每次插入时消耗更小的内存(同样的任务,使用java

    WeakHashMap将消耗4-5倍的内存)。

  • 在 Java 6 和 7(Java7u40以前) 中 -XX:StringTableSize 参数的值是 1009。Java7u40

    以后这个值调整为 60013 (Java 8 中使用相同的值)

  • 如果你不确定字符串池的用量,参考:-XX:+PrintStringTableStatistics JVM

    参数,当你的应用挂掉时它告诉你字符串池的使用量信息。


宜分享,宜收藏,宜学习。

本文为头条号作者发布,不代表今日头条立场。

0 0
原创粉丝点击