草庐IT

jvm-bytecode

全部标签

java - JVM-XX :+StringCache argument?

我最近阅读了有关JRE6[JavaVMOptions中可用的所有JVM参数的信息。]并看到了这个:-XX:+StringCache:Enablescachingofcommonlyallocatedstrings.现在我的印象是Java保留了一个实习(正确的词?)字符串池,并且在使用文字进行字符串连接之类的操作时,它不是创建新对象,而是将它们从该池中拉出。有没有人使用过这个论点,或者可以解释为什么需要它?编辑:我尝试运行基准测试,看看这个参数是否有任何影响,并且无法让SunJVM识别它。这是与:javaversion"1.6.0_11"Java(TM)SERuntimeEnvironm

java - JVM 进程与 JVM 堆内存使用情况

我已通读ProcessMemoryVsHeap--JVM我也有同样的问题。jvm进程的内存使用量一直在增加,并且从不缩小。我通过在linux服务器上做一个顶部检查。应用程序正在将作业调度到集群(使用Quartz+SunJavaDRMAAAPI)java堆空间在应用程序生命周期内保持在限制范围内,但jvm进程显示内存使用量稳步攀升,并且从未下降。这是内存泄漏吗?如果是这样,为什么堆空间在限制范围内。谁能解释一下。更新:当我通过jconsole跟踪时,我有-Xmx1600m-Xms1600m我可以看到堆空间很好地在这个限制内450m但顶部命令显示进程使用超过900m。

java - JVM 进程与 JVM 堆内存使用情况

我已通读ProcessMemoryVsHeap--JVM我也有同样的问题。jvm进程的内存使用量一直在增加,并且从不缩小。我通过在linux服务器上做一个顶部检查。应用程序正在将作业调度到集群(使用Quartz+SunJavaDRMAAAPI)java堆空间在应用程序生命周期内保持在限制范围内,但jvm进程显示内存使用量稳步攀升,并且从未下降。这是内存泄漏吗?如果是这样,为什么堆空间在限制范围内。谁能解释一下。更新:当我通过jconsole跟踪时,我有-Xmx1600m-Xms1600m我可以看到堆空间很好地在这个限制内450m但顶部命令显示进程使用超过900m。

java - 如果我在调用 JVM 时多次指定系统属性,使用哪个值?

如果我在调用JVM时多次指定系统属性,当我检索该属性时,我实际会得到哪个值?例如java-Dprop=A-Dprop=B-jarmy.jar当我调用System.getProperty("prop");会有什么结果?Javadocumentation在这方面并没有真正告诉我任何有用的东西。在我对几台运行不同JVM的机器进行的非科学测试中,最后一个值似乎是返回的值(这实际上是我需要的行为),但我想知道这种行为是否实际上是在任何地方正式定义的,或者可以JVM之间的差异? 最佳答案 没有什么比编写一个小类来看看它是如何工作的更好的了。pu

java - 如果我在调用 JVM 时多次指定系统属性,使用哪个值?

如果我在调用JVM时多次指定系统属性,当我检索该属性时,我实际会得到哪个值?例如java-Dprop=A-Dprop=B-jarmy.jar当我调用System.getProperty("prop");会有什么结果?Javadocumentation在这方面并没有真正告诉我任何有用的东西。在我对几台运行不同JVM的机器进行的非科学测试中,最后一个值似乎是返回的值(这实际上是我需要的行为),但我想知道这种行为是否实际上是在任何地方正式定义的,或者可以JVM之间的差异? 最佳答案 没有什么比编写一个小类来看看它是如何工作的更好的了。pu

java - JVM如何重用interned String子串?

我知道如果你做for(condition){Strings="hithere";}在所有迭代中只创建一个String实例,不像Strings=newString("hithere");将在每次迭代中创建一个新实例.但是,阅读JoshuaBloch的EffectiveJava:第2章第5项(第20页)它指出:Furthermore,itisguaranteedthattheobjectwillbereusedbyanyothercoderunninginthesamevirtualmachinethathappenstocontainthesamestringliteral[JLS,3.

java - JVM如何重用interned String子串?

我知道如果你做for(condition){Strings="hithere";}在所有迭代中只创建一个String实例,不像Strings=newString("hithere");将在每次迭代中创建一个新实例.但是,阅读JoshuaBloch的EffectiveJava:第2章第5项(第20页)它指出:Furthermore,itisguaranteedthattheobjectwillbereusedbyanyothercoderunninginthesamevirtualmachinethathappenstocontainthesamestringliteral[JLS,3.

JVM调优参数

JVM调优参数可以分为以下几类:1.堆内存调优参数:-Xms:初始堆大小-Xmx:最大堆大小-Xmn:新生代大小-XX:NewRatio:新生代和老年代的比例-XX:SurvivorRatio:Eden区和Survivor区的比例2.GC调优参数:-XX:+UseSerialGC:使用串行垃圾回收器-XX:+UseParallelGC:使用并行垃圾回收器-XX:+UseConcMarkSweepGC:使用CMS垃圾回收器-XX:+UseG1GC:使用G1垃圾回收器-XX:MaxGCPauseMillis:最大GC停顿时间-XX:+UseAdaptiveSizePolicy:自适应GC策略3.线

java - 将证书导入 Java keystore ,JVM 忽略新证书

我正在尝试让一个在Tomcat6上运行的应用程序通过SSL连接到LDAP服务器。我使用以下方法将服务器证书导入keystore:C:\ProgramFiles\Java\jdk1.6.0_32\jre\lib\security>keytool-importcert-trustcacerts-filemycert-aliasca_alias-keystore"c:\ProgramFiles\Java\jdk1.6.0_32\jre\lib\security\cacerts"当我在SSL调试打开的情况下启动Tomcat时,根据日志Tomcat正在使用正确的证书文件:trustStoreis

java - 将证书导入 Java keystore ,JVM 忽略新证书

我正在尝试让一个在Tomcat6上运行的应用程序通过SSL连接到LDAP服务器。我使用以下方法将服务器证书导入keystore:C:\ProgramFiles\Java\jdk1.6.0_32\jre\lib\security>keytool-importcert-trustcacerts-filemycert-aliasca_alias-keystore"c:\ProgramFiles\Java\jdk1.6.0_32\jre\lib\security\cacerts"当我在SSL调试打开的情况下启动Tomcat时,根据日志Tomcat正在使用正确的证书文件:trustStoreis