提高 Java 代码性能的各种技巧
来源:互联网 发布:淘宝直播镜像怎么下载 编辑:程序博客网 时间:2024/05/16 06:42
走在求知的路上 2017-01-08 22:21
提高 Java 代码性能的各种技巧
Java 6,7,8 中的 String.intern – 字符串池
这篇文章将要讨论 Java 6 中是如何实现 String.intern
方法的,以及这个方法在 Java 7 以及 Java 8 中做了哪些调整。
总结
由于 Java 6 中使用固定的内存大小(PermGen)因此不要使用
String.intern()
方法Java7 和 8 在堆内存中实现字符串池。这以为这字符串池的内存限制等于应用程序的内存限制。
在 Java 7 和 8 中使用
-XX:StringTableSize
来设置字符串池 Map 的大小。它是固定的,因为它使用HashMap
实现。近似于你应用单独的字符串个数(你希望保留的)并且设置池的大小为最接近的质数并乘以 2 (减少碰撞的可能性)。它是的String.intern
可以使用相同(固定)的时间并且在每次插入时消耗更小的内存(同样的任务,使用javaWeakHashMap将消耗4-5倍的内存)。
在 Java 6 和 7(Java7u40以前) 中
-XX:StringTableSize
参数的值是 1009。Java7u40以后这个值调整为 60013 (Java 8 中使用相同的值)
如果你不确定字符串池的用量,参考:
-XX:+PrintStringTableStatistics
JVM参数,当你的应用挂掉时它告诉你字符串池的使用量信息。
宜分享,宜收藏,宜学习。
本文为头条号作者发布,不代表今日头条立场。
0 0
- 提高 Java 代码性能的各种技巧
- 提高 Java 代码性能的各种技巧
- 提高 Java 代码性能的各种技巧
- Java技巧:提高J2SE性能的代码技巧
- 提高代码性能的技巧
- 提高J2SE性能的代码技巧
- 提高J2SE性能的代码技巧
- 提高 Java 代码的性能
- java代码性能的提高
- java代码性能的提高
- 提高 Java 代码的性能
- 提高 Java 代码的性能
- 提高 Java 代码的性能
- 提高java性能的一些技巧
- Java 中提高性能的几个技巧
- 提高Java程序性能的技巧
- 提高性能的技巧
- 提高性能的技巧
- mysql获取所有分类的前n条记录的两种方法浅析
- Java如何实现对存储过程的调用
- selenium借助AutoIt识别上传(下载)详解
- Android实现延迟的几种方法小结
- 四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例)
- 提高 Java 代码性能的各种技巧
- No module named 'html.entities'; 'html' is not a package
- ROS进二阶学习笔记(8)-- 关于rospy 和 parameters
- MFC中函数GetWindowRect()和GetClientRect()的区别
- 公安大数据应用之情报分析与关联挖掘
- Handler系列之原理分析
- 高级查询 复杂练习
- linux虚拟机挂载本地window系统盘
- Setup Factory打包时实现第三方DLL文件的注册