首页 > 系统相关 >java 17 查看 运行时内存堆 的命令

java 17 查看 运行时内存堆 的命令

时间:2024-09-29 10:14:23浏览次数:1  
标签:jhsdb java 17 MB -- 内存 jmap connect

Java 17

Windows 11

-

 

发生问题

运行了一个 java程序,基于 Java 17 的。

在使用 jmap 查看堆内存分配时,出现了错误:

>jmap -heap 8400
Error: -heap option used
Cannot connect to core dump or remote debug server. Use jhsdb jmap instead

提示使用 jhsdb jamp 替代。ben发布于博客园

 

jhsdb 帮助信息

>jhsdb --help

>jhsdb --help
    clhsdb              command line debugger
    hsdb                ui debugger
    debugd --help       to get more information
    jstack --help       to get more information
    jmap   --help       to get more information
    jinfo  --help       to get more information
    jsnap  --help       to get more information

注意,这里有 jmap、jstack、jinfo 等 子命令。

 

jhsdb jmap 帮助信息

>jhsdb jmap --helpben发布于博客园

>jhsdb jmap --help
    <no option>             To print same info as Solaris pmap.
    --heap                  To print java heap summary.
    --binaryheap            To dump java heap in hprof binary format.
    --dumpfile <name>       The name of the dump file. Only valid with --binaryheap.
    --gz <1-9>              The compression level for gzipped dump file. Only valid with --binaryheap.
    --histo                 To print histogram of java object heap.
    --clstats               To print class loader statistics.
    --finalizerinfo         To print information on objects awaiting finalization.
    --pid <pid>             To attach to and operate on the given live process.
    --core <corefile>       To operate on the given core file.
    --exe <executable for corefile>
    --connect [<serverid>@]<host>[:registryport][/servername] To connect to a remote debug server (debugd).

    The --core and --exe options must be set together to give the core
    file, and associated executable, to operate on. They can use
    absolute or relative paths.
    The --pid option can be set to operate on a live process.
    The --connect option can be set to connect to a debug server (debugd).
    --core, --pid, and --connect are mutually exclusive.

    Examples: jhsdb jmap --pid 1234
          or  jhsdb jmap --core ./core.1234 --exe ./myexe
          or  jhsdb jmap --connect serverid@debugserver:1234/servername

ben发布于博客园

jhsdb jmap 查看堆信息

错误命令:没有 --pid

>jhsdb jmap --heap 8400
SA agent option related exception occurred: You have to set --pid or --exe or --connect.
sun.jvm.hotspot.SAGetoptException: You have to set --pid or --exe or --connect.
        at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.buildAttachArgs(SALauncher.java:178)
        at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.runJMAP(SALauncher.java:340)
        at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.main(SALauncher.java:500)
    <no option>             To print same info as Solaris pmap.

ben发布于博客园

正确命令:

>jhsdb jmap --heap --pid 8400
Attaching to process ID 8400, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 17.0.10+13-LTS

using thread-local object allocation.
Garbage-First (G1) GC with 8 thread(s)

Heap Configuration:
   MinHeapFreeRatio         = 40
   MaxHeapFreeRatio         = 70
   MaxHeapSize              = 2118123520 (2020.0MB)
   NewSize                  = 1363144 (1.2999954223632812MB)
   MaxNewSize               = 1270874112 (1212.0MB)
   OldSize                  = 5452592 (5.1999969482421875MB)
   NewRatio                 = 2
   SurvivorRatio            = 8
   MetaspaceSize            = 22020096 (21.0MB)
   CompressedClassSpaceSize = 1073741824 (1024.0MB)
   MaxMetaspaceSize         = 17592186044415 MB
   G1HeapRegionSize         = 1048576 (1.0MB)

Heap Usage:
G1 Heap:
   regions  = 2020
   capacity = 2118123520 (2020.0MB)
   used     = 75820528 (72.30809020996094MB)
   free     = 2042302992 (1947.691909790039MB)
   3.5796084262356898% used
G1 Young Generation:
Eden Space:
   regions  = 45
   capacity = 54525952 (52.0MB)
   used     = 47185920 (45.0MB)
   free     = 7340032 (7.0MB)
   86.53846153846153% used
Survivor Space:
   regions  = 3
   capacity = 4194304 (4.0MB)
   used     = 3507696 (3.3451995849609375MB)
   free     = 686608 (0.6548004150390625MB)
   83.62998962402344% used
G1 Old Generation:
   regions  = 25
   capacity = 38797312 (37.0MB)
   used     = 25126912 (23.962890625MB)
   free     = 13670400 (13.037109375MB)
   64.76456925675676% used

 

jhsdb是什么?

“JHSDB,即 Java HotSpot Serviceability Debugger,是OpenJDK提供的一款强大的进程外调试工具。”

“JHSDB虽然是JDK 9中才正式提供,但之前已经以sa-jdi.jar包里面的HSDB(可视化工 具)和CLHSDB(命令行工具)的形式存在了很长一段时间。它们两个都是JDK的正式成员,随着JDK一同发布,无须独立下载,使用也是完全免费的。”

 

 

---end---

 

参考资料:

1、深入探索OpenJDK的JHSDB工具:Java调试的新境界

https://developer.baidu.com/article/detail.html?id=3316553

作者:菠萝爱吃肉

2024.04.15 15:09

2、

 

ben发布于博客园

ben发布于博客园

 

标签:jhsdb,java,17,MB,--,内存,jmap,connect
From: https://www.cnblogs.com/luo630/p/18438911

相关文章

  • 安装Java(配置Windows环境)( ̄︶ ̄)↗
    一、下载Java安装包1.1、首先,需要访问Oracle的官方网站(Oracle官网),在网站上找到JavaSE(标准版)的下载页面。1.2、根据自己的操作系统和需求选择合适的JDK(JavaDevelopmentKit)版本。Oracle官网会提供多个版本的JDK供下载,包括长期支持版本(LTS)和最新的非LTS版本。二、安装J......
  • Java 冒泡排序 (Bubble Sort) ✨ 代码版 + Emoji讲解
    冒泡排序的基本思想就是让“大泡泡”不断往上浮,直到整个数组像泡泡浴一样排序好!......
  • javaweb基于SSH开发小型学生宿舍管理系统源码+报告 课程设计 大作业
    ......
  • idea启动卡在启动界面不动弹,java.net.BindException: Address already in use: bind
    早上刚想打开idea发现卡在启动界面无法动弹任务管理器关闭idea和重启机器都无法解决,搜了一下网上的教程把解决方法记录下:打开AppData\Local\JetBrains\IntelliJIdea2021.2\log查看idea.log发现详细错误如下:2024-09-2908:46:57,944[10149]ERROR-llij.ide.plugins.Plugi......
  • java计算机毕业设计网上点餐系统的设计与实现(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,电子商务已渗透到人们生活的方方面面,极大地改变了人们的消费习惯。餐饮业作为传统服务行业的重要组成部分,也迎来了数字化转......
  • java计算机毕业设计体育科技运动综合信息平台(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着体育产业的蓬勃发展及科技水平的不断提升,传统体育训练与管理模式正经历着深刻的变革。在竞技体育日益激烈的背景下,如何高效整合运动员数据、优化......
  • Java之线程篇六
    目录CAS CAS伪代码CAS的应用实现原子类 实现自旋锁CAS的ABA问题ABA问题导致BUG的例子 相关面试题synchronized原理synchronized特性 加锁过程相关面试题Callable相关面试题JUC的常见类ReentrantLockReentrantLock和synchronized的区别:原子类信号......
  • Java常用开发软件安装篇【后端】-Nginx最新版安装和配置详细教程(Windows和Linux)
    文章目录一、Windows安装1.nginx官网下载2.切换到安装路径,解压到当前文件夹3.双击nginx.exe启动nginx4.验证nginx5.nginx配置说明6.重新加载nginx二、Linux安装1.安装Nginx相关依赖2.nginx官网下载3.切换指定路径进行解压4.执行配置脚本,--prefix是指定安装目录5.编译安......
  • Java实现随机抽奖的方法有哪些
    在Java中实现随机抽奖的方法,通常我们会使用java.util.Random类来生成随机数,然后基于这些随机数来选择中奖者。以下将给出几种常见的随机抽奖实现方式,包括从数组中抽取、从列表中抽取以及基于权重的抽奖方式。1.从数组中抽取importjava.util.Random;publicclassLottery......
  • 代码随想录算法训练营Day03-链表 | LC203移除链表元素、LC707设计链表、LC206反转链表
    目录前言LeetCode203.移除链表元素思路完整代码LeetCode707.设计链表思路完整代码LeetCode206.反转链表思路完整代码今日总结前言拖延症犯了,哈哈,拖了一天LeetCode203.移除链表元素给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val......