如何查看JVM采用的是哪种GC

方法一:使用命令行获取

C:\Users\10255880>java -XX:+PrintCommandLineFlags -version
-XX:InitialHeapSize=136306112 -XX:MaxHeapSize=2180897792 -XX:+PrintCommandLineFl
ags -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:-UseLargePagesInd
ividualAllocation -XX:+UseParallelGC
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

上述结果中的 -XX:+UseParallelGC 表明选择的垃圾收集器为并行收集器。

方法二:打印进程信息

  • jps:jdk提供的一个查看当前java进程的小工具, 可以看做是JavaVirtual Machine Process Status Tool的缩写
C:\Program Files\Java\jdk1.8.0_161\bin>jps
11328 Bootstrap
2800 RemoteMavenServer36
3424 Launcher
5744
6336 Launcher
5540 LoaderMain
9316 Jps
10600
11672 Launcher
4728 KotlinCompileDaemon
  • jinfo -flags {进程号}:jinfo 命令可以用来查看 Java 进程运行的 JVM 参数,; -flags 可以打印虚拟机标识。
    jinfo 命令具体如下:
C:\Program Files\Java\jdk1.8.0_161\bin>jinfo -help
Usage:
    jinfo [option] <pid>
        (to connect to running process)
    jinfo [option] <executable <core>
        (to connect to a core file)
    jinfo [option] [server_id@]<remote server IP or hostname>
        (to connect to remote debug server)

where <option> is one of:
    -flag <name>         to print the value of the named VM flag
    -flag [+|-]<name>    to enable or disable the named VM flag
    -flag <name>=<value> to set the named VM flag to the given value
    -flags               to print VM flags
    -sysprops            to print Java system properties
    <no option>          to print both of the above
    -h | -help           to print this help message

使用jinfo -flags查看所有VM标识

C:\Program Files\Java\jdk1.8.0_161\bin>jinfo -flags  11672
Attaching to process ID 11672, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.161-b12
Non-default VM flags: -XX:CICompilerCount=3 -XX:InitialHeapSize=136314880 
-XX:MaxHeapSize=734003200 -XX:MaxNewSize=244318208 -XX:MinHeapDeltaBytes=524288 
-XX:NewSize=45088768 -XX:OldSize=91226112 -XX:+UseCompressedClassPointers 
-XX:+UseCompressedOops -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC

可以看到最后打印的就是使用的GC类型。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
jvm内存模型和垃圾回收(GC)是Java程序中重要的概念。 Java虚拟机(JVM)内存模型定义了Java程序中对象的分配和回收。它包括了堆、栈、方法区和程序计数器。Java内存模型(JMM)则用于规定多线程环境下的内存访问和操作顺序。 GC是垃圾收集器自动完成的过程,用于回收不再使用的对象,释放内存空间。JVM会根据系统环境和内存需求来决定何时进行GC。我们也可以通过调用System.gc()方法手动触发一次垃圾回收,但是具体的回收时机由JVM决定。需要注意的是,手动调用System.gc()方法并不推荐,因为它会消耗较多的资源。 垃圾收集器是实现垃圾回收的具体实现。它们采用不同的算法和策略来收集和回收垃圾对象。Java中有多种垃圾收集器可供选择,如Serial、Parallel、CMS(Concurrent Mark Sweep)和G1(Garbage-First)等。每个垃圾收集器都有不同的特点和适用场景,可以根据应用程序的需求进行选择和配置。 因此,JVM内存模型定义了对象的分配和回收方式,而垃圾回收器则是具体实现了垃圾回收的过程,根据不同的算法和策略来回收不再使用的对象。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [JVM内存模型与垃圾回收](https://blog.csdn.net/weixin_40980639/article/details/125934179)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值