java - JVM-XX :+StringCache argument?

标签 java jvm jvm-hotspot jvm-arguments

我最近阅读了有关 JRE 6 [ Java VM Options 中可用的所有 JVM 参数的信息。 ] 并看到了这个:

-XX:+StringCache : Enables caching of commonly allocated strings.

现在我的印象是 Java 保留了一个实习(正确的词?)字符串池,并且在使用文字进行字符串连接之类的操作时,它不是创建新对象,而是将它们从该池中拉出。有没有人使用过这个论点,或者可以解释为什么需要它?

编辑:我尝试运行基准测试,看看这个参数是否有任何影响,并且无法让 Sun JVM 识别它。这是与:

java version "1.6.0_11"  
Java(TM) SE Runtime Environment (build 1.6.0_11-b03)
Java HotSpot(TM) Client VM (build 11.0-b16, mixed mode,
sharing)

所以我不确定这个论点是否有效。

最佳答案

我相信当与 -XX:+AggressiveOpts 一起使用时,它可以在创建具有相同的 String 时返回相同的 String 对象文本(当然不是通过 new String)。有一个配置文件阶段,其中建立了缓存,并且在某个点之后将缓存切换为只读。它在某些基准测试中得分更高。

关于java - JVM-XX :+StringCache argument?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1049983/

相关文章:

java - Web 服务可以返回流吗?

java - 运行简单的mapreduce作业时出现错误 "java.lang.OutOfMemoryError: Java heap space"

java - java对象头标记词详细说明

java - Java 中的按位与 (&) 表达式

Scala 类型错误

java - 从正在运行的 java 程序的内存中定位并读取特定类型的对象

java - 使用 dropzone 发送多部分加密数据

java - AccountManager:invalidateAuthToken 不会使 token 失效

java - 如何一次又一次地使用同一个迭代器?

java - 如何在Eclipse中调试openjdk 9(主要是hotspot)源码?