首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

jmap -历史和堆操作是否会给jvm带来开销?

jmap是Java虚拟机自带的一款命令行工具,用于生成Java堆的转储快照(heap dump)和查看Java堆的详细信息。它可以帮助开发人员分析和调试Java应用程序的内存使用情况。

关于jmap的历史和堆操作是否会给JVM带来开销,可以从以下几个方面进行说明:

  1. 历史操作(历史记录):jmap可以通过使用"-histo"选项来生成Java堆的对象直方图,显示各个类的实例数量和占用内存大小。这个操作本身不会对JVM带来太大的开销,因为它只是遍历堆中的对象并统计信息。
  2. 堆操作(堆转储):jmap可以通过使用"-dump"选项来生成Java堆的转储快照,以便进行内存分析。这个操作会将整个堆的状态写入到一个文件中,可能会对JVM的性能产生一定的影响。在生成堆转储期间,JVM会暂停应用程序的执行,以确保堆的一致性。因此,在生产环境中,应该谨慎使用堆转储操作,以免影响应用程序的正常运行。

总结起来,jmap的历史操作不会给JVM带来太大的开销,而堆操作可能会对JVM的性能产生一定的影响。因此,在使用jmap时,需要根据具体情况谨慎选择操作,并在生产环境中避免频繁使用堆转储操作。

腾讯云提供了一系列与云计算相关的产品,如云服务器、云数据库、云存储等,可以帮助用户构建稳定、高效的云计算环境。具体关于腾讯云产品的介绍和相关链接地址,请参考腾讯云官方网站:https://cloud.tencent.com/

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

京东JDK的探索与研究 (一)

△ 针对大堆的工具开发: 以JMap为例,当内存很大的时候,一次JMap操作便利整个内存耗时巨大,我们经常遇到JMap导致假死的情况。...此方案的好处是保持region大小不变,可以将分配的影响降到最小,但同时由于G1算法需要对每个region之间的引用关系做同步,如果数量过多,则同步的开销增大,从而影响GC的效率。...当业务量降低,并且heap使用率低于一定阈值时,JVM将利用G1GC回收拓展的区域,从而保证在正常情况下JVM进程不会给系统内存造成额外的压力。...该功能在编译阶段生成默认的Archive,并且无需用户指定JVM选项-Xshare:auto即可享受到CDS带来的优点。...使得JMap在200GB扫描性能提升2倍,同时能够使JMap在运行过程中不断输出中间结果,这样即使JVM进程退出,JMap仍能提供有效的信息用于分析内存使用情况。

1.6K40

Java线上问题排查思路及Linux常用问题分析命令学习

jmap命令 jmap -heap pid 输出当前进程 JVM 新生代、老年代、持久代等请情况,GC 使用的算法等信息 jmap -histo:live {pid} | head -n 10...输出当前进程内存中所有对象包含的大小 jmap -dump:format=b,file=/usr/local/logs/gc/dump.hprof {pid} 以二进制输出档当前内存的情况,然后可以导入...MAT 等工具进行 1、 jmap -heap pid 输出当前进程JVM新生代、老年代、持久代等情况,GC使用的算法等信息。...当然,如果你决定手动 dump 内存时,dump 操作占据一定 CPU 时间片、内存资源、磁盘资源等,因此会带来一定的负面影响。...此外,dump 的文件可能比较大 , 一般我们可以考虑使用 zip 命令对文件进行压缩处理,这样在下载文件时能减少带宽的开销

1.2K20

2020年腾讯云KonaJDK开源贡献总结

Serviceability 并行扫描 在JDK内存分析工具中, Jmap是最为常用的一种,其中 jmap -histo工具会对java进行遍历,统计每一个对象所属的类型,最后会给出这样一个数据:...例如在笔者的开发环境上,用Jmap -histo 扫描一个包含6GB对象的java,要耗费4秒左右的时间。...gzipped heap dump 在实际业务中,根据运维人员的反馈,我们发现jvm提供的heap dump功能存在一定的缺陷——dump的数据文件非常大,在网络带宽受限的情况下难以传输,非常不便。...下图是使用jmap -dump 与jmap -dump:gz=1 在相同测试进程,相同占用情况下得到的heap dump文件,文件大小压缩了7倍左右: ?...SVC、Core LibrariesInfrastucture等领域,总代码修改量2000+行。

71220

2020年腾讯KonaJDK开源贡献总结

Serviceability 并行扫描 在JDK内存分析工具中, Jmap是最为常用的一种,其中 jmap -histo工具会对java进行遍历,统计每一个对象所属的类型,最后会给出这样一个数据:...例如在笔者的开发环境上,用Jmap -histo 扫描一个包含6GB对象的java,要耗费4秒左右的时间。...gzipped heap dump 在实际业务中,根据运维人员的反馈,我们发现jvm提供的heap dump功能存在一定的缺陷——dump的数据文件非常大,在网络带宽受限的情况下难以传输,非常不便。...下图是使用jmap -dump 与jmap -dump:gz=1 在相同测试进程,相同占用情况下得到的heap dump文件,文件大小压缩了7倍左右: ?...SVC、Core LibrariesInfrastucture等领域,总代码修改量2000+行。

73420

JVM-监控及诊断工具

JVM Heap Analysis Tool):Sun JDK提供的jhat命令与jmap命令搭配使用,用于分析jmap生成的heap dump文件(转储快照)。...指令 GC.class_histogram 可以替换 jmap中的-histo操作 GC.heap_dump 可以替换 jmap中的-dump操作 GC.run 可以查看GC的执行情况 VM.uptime...能够以极低的性能开销收集Java虚拟机的性能数据。...主要功能: 1.生成/读取内存/线程快照 2.查看JVM参数系统属性 3.查看运行中的虚拟机进程 4.程序资源的实时监控 5.JMX代理连接、远程环境监控、CPU分析内存分析 官方地址:https...是否有一个全局视角来查看系统的运行状况? 有什么办法可以监控到JVM的实时运行状态? 怎么快速定位应用的热点,生成火焰图?

41940

你知道 OOM 常见原因吗?有什么好的解决方法?

解决方案 针对大部分情况,通常只需要通过 -Xmx 参数调高 JVM 内存空间即可。...功能逐一分析开销最大的 classloader 重复 class。...该问题发生的常见过程主要包括以下几步: JVM 内部的应用程序请求创建一个新的 Java 线程; JVM native 方法代理了该次请求,并向操作系统请求创建一个 native 线程; 操作系统尝试创建一个新的...然而,这种方式也会无可避免地带来一定的“超卖”风险。例如某些进程持续占用系统内存,然后导致其他进程没有可用内存。...检查外内存使用代码,确认是否存在内存泄漏;或者通过反射调用 sun.misc.Cleaner 的 clean() 方法来主动释放被 Direct ByteBuffer 持有的内存空间。

1.6K20

【Flink】第六篇:记一次Flink状态(State Size)增大不收敛,最终引起OOM问题排查

问题表象分析 从Flink web ui上观察作业的checkpoint历史信息,每隔一段时间抽取出来作业所有算子的checkpoint metrics信息: 可以看到,除了第一的state...按图索骥,循序渐进 运用JDK工具分析是哪些JVM空间没有被释放。 (1) 由于这个Flink作业只用了一个TaskManager,所以,我们只需要观察这个TaskManager的JVM进程即可。...(Local Virtual Machine Identifier,虚拟机唯一 ID); (4) jmap -dump打印dump文件。...jmap:用于查询的快照信息。...查看内存对象占用空间情况,找到top3的实例对象,发现是程序中的某类实例类,如下,是LoadAddrOutPutLoadEmpNameOutPut。

2.8K40

前京东陌陌高级架构师的直播笔记分享(Java 内存问题排查和解决:内存概览,内存问题出现的原因,问题代码,案例分析)

主题 了解 JVM 操作系统的内存管理基本概念 了解内存溢出内存泄漏的原因症状 根据实例诊断/发现/解决内存问题 内存 Linux 系统内存概览 编译后地址是逻辑内存,需要经过翻译映射到物理内存...-Xmx -Xms 控制大小 Java 内存 元空间(外) 操作系统剩余内存 内存划分 JVM 进程内存 = 内内存 + 外内存 外内存 = 元空间 + CodeCache + 本地内存 外内存操作系统剩余内存是此消彼长的关系...软引用:只有在内存不足时,系统则会回收软引用对象 弱引用:当 JVM 进行垃圾回收时,无论内存是否充足,都会回收被弱引用关联的对象 虚引用:虚引用主要用来跟踪对象被垃圾回收的活动 对象何时提升(Promotion...事故发生方 = 具体的服务 事故处理方 = 相关程序员 事故现场(拍照取证)= 问题发生快照 后续处理 = 措施改进 瞬时态历史态 瞬时态 - 现场保存 是指当时发生的,快照类型的元素。...确定 Java 进程内存足够:jmap 确定主机环境,剩余内存大小 查看 GClog 其他日志 使用 jstack 对线程进行摸底 对外内存进行排查 保留现场 二、采取措施 三 、重复观察 四

1.4K60

速读原著-借助开源工具高效完成 Java 应用的运行分析

Jmap(借助JPM 的一点帮助) Oracle 将 jmap 描述为一种“输出进程、核心文件、远程调试服务器的共享对象内存映射内存细节”的程序。本文将使用 jmap 打印一张内存统计图。...为了打印内存统计图,我们需要打开 jmap 控制台程序,并输入程序的 PID “-histo:live”选项。如果不添加这个选项,jmap 将完整导出该程序的内存,这不是我们想要的结果。...这类数据信息的好处是,不仅非常有用而且对于很大的 JVM 也能快速反馈结果。我曾经试过检测一个运行频繁并且占用 17GB 内存的程序,使用 jmap 能够在 1 分钟内生成程序的性能统计图。...调用的调用计数及执行次数; 对硬盘网络操作的调用计数及执行次数。...借助 EurekaJ 管理程序,我们可以在一张图上分组显示多个统计数据、可以定义阈值给接收者发出警报。我们还可以方便的查看收集到的实时数据或历史数据。

63010

JDK自带JVM调优工具,一次性打包讲给你听

jinfo -flag name pid 使用该命令,可以查看指定的name为 JVM参数的值。 如:查看当前 JVM进程是否开启打印·GC日志。 ?...jmap命令可以获得运行中的JVM的快照,从而可以离线分析,以检查内存泄漏,检查一些严重影响性能的大对象的创建,检查系统中什么对象最多,各种对象所占内存的大小等等。...-clstats(取代了在JDK8之前打印类加载器信息的permstat)打印classloadjvm heap长久层的信息....使用命名查看JVM的heap信息 jmap -heap pid 输出Java详细信息 ; ? 使用 jmap -histo:live pid 输出中对象的相关统计信息。...Show heap histogram 以树状图形式展示情况 ? 具体问题排查的时候,需要结合代码,然后观察是否大量应该被回收的对象在一直被引用或者是否有占用内存特别大的对象无法被回收。

65130

UAVStack功能上新:新增JVM监控分析工具

近期,我们整合了原有的数据采集展示功能,新增JVM分析功能,推出了更易用的JVM监控分析工具。 熟悉JDK的开发者都知道,JDK本身提供了一套JVM分析工具,包括jinfo、jmap、jstack等。...点击“刷新”可以查看近期dump内存的操作记录。...查询结果按照方法的自用执行时间降序排序,用户可以查看当前应用内部耗时较长的执行方法,判断应用是否异常、是否需要优化。...[1571038442575082239.jpeg] 3.6 内存分析 内存分析是基于线程以及的统计采样分析,主要提供两个功能:每个线程的内存分配内分配细节。...JVM监控分析工具解决了开发人员没有线上应用堡垒机权限、无法分析采集到的数据等痛点,同时提供CPU与内存采样分析等功能,以较低的性能开销获取较为全面的JVM运行数据,帮助应用开发人员发现与分析问题,为应用开发优化提供参考依据

1.5K20

java(10)-JVM性能监控优化

GC监控是为了鉴别JVM是否在高效地执行GC,以及是否有必要进行额外的性能调优。基于以上信息,我们可以修改应用程序或者调整GC算法(GC优化)。...利用JVM内建的指令对Java应用程序的资源性能进行实时的命令行的监控,包括了对Heap size垃圾回收状况的监控。查看GC操作的信息,类装载操作的信息以及运行时编译器操作的信息。...2、jmap -histo pid 查看内存(histogram)中的对象数量大小 jmap -histo pid 查看内存(histogram)中的对象数量大小 num #instances...2.要制作Dump可以直接使用jvm自带的jmap命令 3.可以先使用jmap -heap命令查看的使用情况,看一下各个空间的占用情况。...在 Java引入 NIO之前,对于每个网络连接,都有一个对应的线程来处理网络的读写操作,即使没有可读写的数据,线程仍然阻塞在读写操作上,这样有可能造成资源浪费,而且给操作系统的线程调度也带来压力。

97610

经典jvm问题案例分析及处理详解

查看当前内存大小 jmap -heap pid pid为 可以通过 ps -ef|grep java(或者关键字来查询) 整体内存可以分为区: 所有new的对象都在区 新生代、中生代...= n -XMaxPermSize = n 注意-XMaxPermSize-Xmx的总和不能超过物理机的最大内存值 查询结果如下(有些服务可能没有jmap等命令,需要额外安装,或者换docker基础镜像...如果JVM没有设置,默认为服务器的1/4,所以看这个参数,就可以大概识别服务器JVM配置是否合理。...怎么定位内存的使用情况呢(GC情况) 上述,我们只是通过查询jvm的heap内存情况,并结合业务以及服务器参数初步判断内存是否需要调节。那如果我们内存调节后,还是会出现这种情况,怎么办。...案例1分析:可以见到JVM在疯狂FGC,占用大量CPU。结合jmap查看内存情况,发现项目压根没设置内存大小。 案例1优化:调节JVM内存,导出内存快照,定位是否有异常地方。

68410

JVM监控及诊断工具

7:GCT:GC总耗时 jstat可以用来判断系统是否出现了内存泄漏,方法是通过一短长时间的观察OU的增长情况,如果OU稳定增长,则有可能出现内存泄漏。...jmap   jmap用于分析JVM中的对象,包括生成堆的dump文件,这个命令同样有多条子命令。...常用的命令有如下几个: 1:jmap -heap:用于打印内存使用情况,包括使用的GC算法、配置参数各代中内存使用,示例如下图所示: ?...jmap -heap使用示例 2:jmap -histo:live:用于打印中各个类中的实例数目以及占用内存的大小,并排序。使用的示例如下: ?...jmap -histo:live使用示例 3:jmap -dump :用于导出JVM快照文件,方便用GUI工具分析。 ?

1.9K21
领券