19得票5回答
为什么需要指定Java堆大小?

我一直很好奇,为什么Java需要手动设置堆大小? 我之前的印象是,其他语言编写的程序会在运行过程中分配尽可能多的内存,直到操作系统无法再分配为止。 在Java世界中,我们需要设置堆、栈和永久代的大小。虽然这很简单,但是忘记将它们增加到足够大的数字是我见过服务器崩溃的头号原因。 为什么不能让...

19得票2回答
如何在VS Code中为Spring Boot项目添加JVM参数?

我正在尝试使用VS Code,将我在Eclipse上完成的项目移植到它上面。在Eclipse中,我为此项目设置了一个运行配置,其中包含以下JVM参数:--module-path lib/javafx-sdk-13/lib --add-modules=javafx.controls 当然,这个“...

17得票1回答
我该如何确定Hotspot JVM为什么会重新编译已经进行了JIT编译的代码?

我正在尝试为一个对延迟敏感的Java应用程序编写热身例程,以优化否则会因为动态类加载和JIT(主要原因)而减慢的前几个事务。 我面临的问题是,即使我的热身代码加载了所有的类并通过多次调用它们进行了练习(至少100次-XX:CompileThreshold),但稍后当实际用户登录时,这些相同的...

16得票1回答
切换到Java 17后出现了“未识别的VM选项'CMSClassUnloadingEnabled'”的错误提示。

将Java版本更改为17后,我无法构建Gradle项目。 我正在使用Gradle 7.3.1版本,并在Gradle属性中有以下行: org.gradle.jvmargs=-Dfile.encoding=UTF-8 -Xms1g -Xmx4g -XX:+UseG1GC -XX:+CMSCla...

15得票2回答
应用重启时GC日志轮换数据丢失。

我使用这个jvm选项来创建gc日志并启用滚动:$ java -Xloggc:gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotatio...

14得票2回答
卡尺错误:CICompilerCount为1无效;必须至少为2。

我有一个卡尺基准(1.0-beta-2):import com.google.caliper.Benchmark; import com.google.caliper.runner.CaliperMain; public class MyBenchmark { @Benchmark...

14得票3回答
如何使用JVM参数指定java.util.Calendar的firstDayOfWeek?

我正在尝试将java.util.Calendar的默认firstDayOfWeek从SUNDAY更改为MONDAY。是否可以通过JVM配置来实现这一点,而不是添加此代码片段?cal.setFirstDayOfWeek(Calendar.MONDAY);

14得票7回答
Java中的多线程状态可见性:有没有办法将JVM转换为最坏情况?

假设我们的代码有两个线程(A和B)在某处引用了该类的同一个实例:public class MyValueHolder { private int value = 1; // ... getter and setter } 当线程A执行myValueHolder.setVa...

14得票1回答
JVM参数:针对HTTPS的非代理主机

所以我有一个相当复杂的环境变量_JAVA_OPTIONSexport _JAVA_OPTIONS="-Dhttp.proxyHost=my-proxy.com -Dhttp.proxyPort=1080 -Dhttps.proxyHost=my-proxy.com -Dhttps.pro...

14得票1回答
log4j2配置中的用户JVM参数

我在log4j2.xml文件中定义了一个RollingFile Appender。 <RollingFile name="RollingFile" fileName="/logs/app.log" filePattern="logs/$${date:yyyy-M...