我用 JMH 测试我的程序性能。并且无法配置堆大小。我想知道为什么它不起作用。
问题:
- 为什么 JMH 不接受堆大小配置?
- JMH 是否在没有
jvmArgs
方法的情况下吸收想法堆大小设置?
错误:
# Run progress: 0.00% complete, ETA 00:04:30
# VM invoker: /usr/lib/jvm/java-8-oracle/jre/bin/java
# VM options: -Xms2048m -Xmx2048m -XX:MaxDirectMemorySize=512M
# Fork: 1 of 1
Invalid initial heap size: -Xms2048m -Xmx2048m -XX:MaxDirectMemorySize=512M
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
<forked VM failed with exit code 1>
主要方法:
public static void main(String... args) throws RunnerException, IOException {
Options opt = new OptionsBuilder()
.include(".*" + ArraySummatorBenchmarking.class.getSimpleName() + ".*")
.warmupIterations(5)
.measurementIterations(5)
.forks(1)
.jvmArgs("-Xms2048m -Xmx2048m -XX:MaxDirectMemorySize=512M")
.build();
new Runner(opt).run();
}
想法.vmoptions
-server
-Xms2056m
-Xmx2056m
-XX:MaxPermSize=1024m
-XX:ReservedCodeCacheSize=256m
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djsse.enableSNIExtension=false
-XX:+UseCodeCacheFlushing
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-Dawt.useSystemAAFontSettings=lcd
主要方法选项:
-Xms2048m -Xmx2048m -XX:MaxDirectMemorySize=512M