无法在Spring Boot应用程序中启用本机内存跟踪

Abh*_*jan 5 java jvm memory-leaks spring-boot

我正在尝试像这样在我的春季启动应用程序中启用NMT

 java -jar -Dlogging.config=log4j2.xml -XX:NativeMemoryTracking=summary application.jar 
Run Code Online (Sandbox Code Playgroud)

但是,我得到一个警告

Java HotSpot(TM) 64-Bit Server VM warning: Native Memory Tracking did not setup properly, using wrong launcher?
Run Code Online (Sandbox Code Playgroud)

如何为在嵌入式tomcat上运行的应用程序启用NMT?

apa*_*gin 12

更改参数的顺序:

java -XX:NativeMemoryTracking=summary -Dlogging.config=log4j2.xml -jar application.jar
Run Code Online (Sandbox Code Playgroud)

这是java发射器的一个特点。-XX:NativeMemoryTracking必须由启动器和 JVM 处理才能生效。但是,一旦看到终端选项,启动器就会停止处理参数。-jar是其中之一。

  • @PeterLawrey 同意。添加了该段落。同时我个人认为这是一个bug。参数被处理两次,但启动器和 JVM 之间的处理逻辑不一致。 (2认同)