你如何在java中获取线程堆_如何在Windows上获取未在控制台中运行的Java进程的线程和堆转储...

问题

我有一个Java应用程序,我从控制台运行,然后控制台执行另一个Java进程。我想获得该子进程的线程/堆转储。

在Unix上,我可以做akill -3 但是在Windows AFAIK上获取线程转储的唯一方法是在控制台中使用Ctrl-Break。但这只会让我转移父进程,而不是孩子。

是否有另一种方法来获得堆转储?

#1 热门回答(326 赞)

假设你知道pid,你可以使用jmap获取正在运行的任何进程的转储。

使用任务管理器或资源监视器获取pid。然后

jmap -dump:format=b,file=cheap.bin

获取该进程的堆。

#2 热门回答(98 赞)

你混淆了两个不同的java转储.kill -3生成一个线程转储,而不是一个堆转储。

线程转储=将JVM输出中的每个线程的堆栈跟踪作为文本输出到stdout。堆转储= JVM进程输出到二进制文件的内存内容。

要在Windows上进行线程转储,CTRL BREAK如果你的JVM是前台进程是最简单的方法。如果你在像Cygwin或MobaXterm这样的Windows上有类似unix的shell,你可以像在Unix中一样使用2146767290。

要在Unix中进行线程转储,只要为JVM获得正确的PID,CTRL Cif你的JVM就是前台进程orkill -3 {pid}会工作。

只是为了完成转储问题:堆转储不常用,因为它们很难解释。但是,如果你知道在哪里/如何看待它们,它们中有很多有用的信息。最常见的用法是查找内存泄漏。最好在java命令行中设置-D,以便在OutOfMemoryError上自动生成堆转储,但也可以手动触发堆转储。最常见的方法是使用java utilityjmap。

**注意:**此实用程序并非在所有平台上都可用。从JDK 1.6,jmap开始,在Windows上可用。

一个示例命令行看起来像

jmap -dump:file=myheap.bin {pid of the JVM}

输出"myheap.bin"不是人类可读的(对于我们大多数人来说),你需要一个工具来分析它。我的偏好是MAT.http://www.eclipse.org/mat/

#3 热门回答(24 赞)

我认为在Linux进程中创建.hprof文件的最佳方法是使用jmap命令。例如:jmap -dump:format=b,file=filename.hprof {PID}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/397011.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html ie乱码_Java 0基础入门(初识Html)

在学习Java之前,我们需要了解一定的前端知识。毕竟页面才是用户真正看到的,而且也是体现Java后端逻辑结果的地方。学习HTML后,能够制作界面美观大方的静态网站(更复杂的功能需要JavaScript脚本一起来实现)。HTML制作的网页。所需要的Html开发…

常用自动化框架简单的分析与介绍

目前常用的可用于APP自动化测试的框架有以下几个: 1、Monkey是Android SDK自带的测试工具,在测试过程中会向系统发送伪随机的用户事件流,如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试,也…

linux一步一脚印---more、less、head、tail

一、more 文件内容或输出查看命令more 是我们最常用的工具之一,最常用的就是显示输出的内容,然后根据窗口的大小进行分页显示,然后还能提示文件的百分比; [rootlocalhost ~]# more /etc/profile 1、more 的语法、参数和命令&#…

单片机检测stc没反应_我为什么不用STC单片机

写在2019.10.27这属于自己打自己脸,不过,我突然想试试 STC15W108.理由可能有点操蛋,因为STM8S没有 DFN8这样 3x3的封装,而PIC的仿真器太贵。我最后感兴趣的一个STC型号是 STC15F的8脚系列,那是在2010年,然而…

commons-pool

commons-pool组件是使用对象池时都要用到的。他的作用主要是管理对象池, 当我们要用这个组件时(比如redis要用到时),只需要实现它的部分接口,比如PooledObjectFactory接口,实现它的创建对象,销毁…

JAVA中CyclLink怎么用_Java多线程基本使用一

1 多线程--初步【1进程比如:QQ、迅雷、360、飞秋...2线程的概念3线程的意义:4.Java程序的运行原理代码是运行在线程中的,如果一个进程没有线程,那么进程就结束了,也就是说一个进程至少要有一个线程当开启一个Java…

指针分析

int *a; int b 4; a &b; //a:b的地址 //*a 取b地址的值,为4 //&a为指针变量的地址 //*(&a)为指针变量储存的地址 即为a int **b &a; //b为指针变量a的地址 //*b为指针变量a所储存的地址 //改变*b(指针变量所储存的地址)即改变了*b的值转载于:http…

live server插件怎么用_分享几个我日常使用的VS Code插件

在这篇文章中,我想介绍一下自己日常使用中最喜欢的Visual Studio Code扩展。大多数时候,我用VS Code编写的是JavaScript应用程序(标准JavaScript、React、Angular、NodeJS……各式各样)。Bracket Pair Colorizer 2这个扩展很不错,可以帮助我搞…

Xtrabackup数据全备份与快速搭建从服务器

Percona Xtrabackup可以说是一个完美的数据备份工具。特别是当数据库的容量达到了一定数量级的时候且存在单表达到几十G的数据量, 很难容忍一些逻辑备份的漫长时间。如单个数据库约200G,单表最大为120G,mysqldump逻辑备份的时间长达20多小时。…

简单的java方法_Java简单实用方法一

整理以前的笔记,在学习Java时候,经常会用到一些方法。虽然简单但是经常使用。因此做成笔记,方便以后查阅这篇博文先说明构造和使用这些方法。1,判断String类型数据是否为空String类型的数据为空,主要为等于null或”“那么只要判断…

Android应用程序开发

第一章 Android应用初体验 1.1应用基础 activity是Android SDK中Activity类的一个具体实例,负责管理用户与信息屏的交互。 应用的功能是通过编写一个个Activity子类来实现的。 布局定义了一系列用户界面对象以及它们显示在屏幕上的位置。组成布局的定义保存在XML文件…

phonegap

phonegap 框架详解 转自:http://www.cnblogs.com/hubcarl/p/4216844.html首先, 来看一下phonegap 初始化流程以及Native 与 JS 交互流程图。 说明:socket server模式下, phonegap.js 源码实现的采用1 毫秒执行一次XHR请求, 当Native JS 队列里面有JS语…

j2ee核心模式_Operator和Sidecar正在成为软件交付新模式

现如今的开发人员希望可以开发出具备弹性和可扩展的分布式系统。该系统受益于软件复用和开源模型创新,针对安全性问题能够轻易完成补丁更新并进行低风险的升级。该系统不可能通过带有各种嵌入式语言库的应用程序框架来实现。最近,一篇关于“多运行时微服…

微信JS-SDK选择相册或拍照并上传PHP实现

理解:微信上传接口是拍照,或者选择本地照片,上传到微信的服务器,获取到一个id,通过token与这个id获取到图片,保存到服务器即可。 效果 通过微信js接口,调用底层程序。 需要引入js文件&#xff0…

JMS-ActiveMQ学习-3 ActiveMQ与Spring集成

Spring下开发消息的发送和接收程序 点对点模式 一、创建生产者项目 1.创建maven项目 2.添加spring-jms、jms规范、activemq依赖 <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jms&…

看libevent所遇到的英语生词

libevent – an event notification library The libevent API &#xff08;libevent应用程序&#xff09;provides a mechanism&#xff08;机制&#xff09; to execute&#xff08;执行&#xff09; a callback function&#xff08;回调函数&#xff09; when a specific&a…

java中迭代器要导包吗_java 中迭代器的使用方法详解

java 中迭代器的使用方法详解前言&#xff1a;迭代器模式将一个集合给封装起来&#xff0c;主要是为用户提供了一种遍历其内部元素的方式。迭代器模式有两个优点&#xff1a;①提供给用户一个遍历的方式&#xff0c;而没有暴露其内部实现细节&#xff1b;②把元素之间游走的责任…

android socket 长连接_TCP/IP,http,socket,长连接,短连接

点击上方蓝色字体&#xff0c;选择“标星公众号”优质文章&#xff0c;第一时间送达上一篇&#xff1a;这300G的Java资料是我师傅当年给我的&#xff0c;免费分享给大家下一篇&#xff1a;这200G的Java实战资料是我师傅当年教我的第二招作者 | ksfzhaohui来源 | my.oschina.net…

二、Python安装扩展库

第一步:推荐easy_install工具 下载地址:https://pypi.python.org/pypi/setuptools 下载"ez_setup.py"文件; 通过运行cmd命令找到ez_setup.py文件所在目录,通过命令[python ez_setup.py]执行安装easy_install 安装成功截图 第二步:安装扩展酷 例如安装"suds"…