根据java -XX:+PrintFlagsFinal -version问题,我使用https://stackoverflow.com/questions/10486375/print-all-jvm-flags来比较升级到JVM 11的路径上的不同JDK的结果。
不过,我注意到PrintFlagsFinal的结果仍然会返回不推荐的选项,例如PrintGC仍然存在,尽管运行-XX:+PrintGC会发出警告&运行-Xlog:gc。
那么,是否有一个类似于PrintFlagsFinal的选项,可以用来查找当前不推荐的所有选项,以避免使用它们?
(知道我可以手动检查发行说明,但是想知道是否有一种内置的方法可以从JVM中查找,类似于jdeprscan对于不推荐的模块依赖项)
发布于 2018-11-26 11:42:41
有多个“级别”的弃用:别名、弃用、过时和过期标志,其含义在arguments.cpp中描述。
除了上述类别之外,还有被统一JVM日志记录选项替换的不推荐使用的跟踪标志。
最后,在描述中有一些没有列出的标志只是“不推荐”。
我不知道有哪个地方可以将所有这些不推荐的标志收集在一起,但是从JVM源代码中提取它们是相当容易的:上述的arguments.cpp和.hpp家族。我还推荐使用结构良好的按版本排列的VM选项资源管理器 JVM标志的HotSpot站点。
截至JDK 11,废弃/过时/过期和其他不受支持的标志列表包括:
AggressiveOpts
AllowNonVirtualCalls
AssumeMP
CheckAssertionStatusDirectives
CheckEndorsedAndExtDirs
CompilerThreadHintNoPreempt
CreateMinidumpOnCrash
DefaultMaxRAMFraction
DeferPollingPageLoopCount
DeferThrSuspendLoopCount
EnableTracing
FastTLABRefill
FreqCountInvocations
IgnoreUnverifiableClassesDuringDump
InitialRAMFraction
InlineNotify
MaxGCMinorPauseMillis
MaxPermSize
MaxRAMFraction
MinRAMFraction
MonitorInUseLists
MustCallLoadClassInternal
NativeMonitorFlags
NativeMonitorSpinLimit
NativeMonitorTimeout
PermSize
PrintCompressedOopsMode
PrintGC
PrintGCDetails
PrintMalloc
PrintMallocFree
PrintSafepointStatistics
PrintSafepointStatisticsCount
PrintSafepointStatisticsTimeout
PrintSharedSpaces
SafepointSpinBeforeYield
SharedMiscCodeSize
SharedMiscDataSize
SharedReadOnlySize
SharedReadWriteSize
ShowSafepointMsgs
TraceBiasedLocking
TraceClassLoading
TraceClassLoadingPreorder
TraceClassPaths
TraceClassResolution
TraceClassUnloading
TraceExceptions
TraceJVMTIObjectTagging
TraceLoaderConstraints
TraceMonitorInflation
TraceRedefineClasses
TraceSafepointCleanupTime
TraceScavenge
UnlinkSymbolsALot
UnsyncloadClass
UseAppCDS
UseConcMarkSweepGC
UseLockedTracing
UseMembar
UseUTCFileTimestamp
VMThreadHintNoPreempt更新
多亏了@chriswhocode,VM选项资源管理器现在显示了不受欢迎的JVM标志。
发布于 2018-12-01 11:58:58
发布于 2018-11-26 14:38:26
如果您可以在应用程序上运行Java记录(例如,在开发设置中),并使用Java/JDK任务控件(>= 6.0.0)打开它,那么JMC将分析用于启动JVM的标志,并告诉您哪些标志是不推荐的。
https://stackoverflow.com/questions/53478299
复制相似问题