mat工具MemoryAnalyzer进行分析java内存溢出hprof文件

本文介绍了一种当Java服务端程序出现错误并生成hprof文件时的处理方法,利用Eclipse Memory Analyzer (MAT) 工具对hprof文件进行分析,帮助开发者定位内存泄漏等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java服务端程序报错后会生成hprof文件,我们可以通过mat工具MemoryAnalyzer进行分析
下载地址:

http://www.eclipse.org/mat/downloads.php


说明:
查看HPROF快照
  JProfiler能打开用JVM工具(比如jconsole、 jmap或通过-XX:+HeapDumpOnOutOfMemoryError JVM参数触发)创建的HPROF快照文件

示例:

#!/bin/bash
LANG="zh_CN.UTF-8"

APP_HOME=$(echo `pwd` | sed 's/bin//')
APPPIDFILE=$APP_HOME/app.pid

case $1 in
start)
    echo  "Starting server... "

    HEAP_MEMORY=512m
    PERM_MEMORY=64m
    JMX_PORT=8888
    JMX_HOST=1.1.1.1
    JAVA_OPTS="-server -Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.EPollSelectorProvider -XX:+HeapDumpOnOutOfMemoryError -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false "

    shift
    ARGS=($*)
    for ((i=0; i<${#ARGS[@]}; i++)); do
        case "${ARGS[$i]}" in
        -D*)    JAVA_OPTS="${JAVA_OPTS} ${ARGS[$i]}" ;;
        -Heap*) HEAP_MEMORY="${ARGS[$i+1]}" ;;
        -Perm*) PERM_MEMORY="${ARGS[$i+1]}" ;;
        -JmxPort*)  JMX_PORT="${ARGS[$i+1]}" ;;
        -JmxHost*)  JMX_HOST = "${ARGS[$i+1]}" ;;
        esac
    done
    JAVA_OPTS="${JAVA_OPTS} -Xms${HEAP_MEMORY} -Xmx${HEAP_MEMORY} -XX:PermSize=${PERM_MEMORY} -XX:MaxPermSize=${PERM_MEMORY} -Dcom.sun.management.jmxremote.port=${JMX_PORT} -Djava.rmi.server.hostname=${JMX_HOST} -Dapp.home=${APP_HOME}"
    echo "start jvm args ${JAVA_OPTS}"
    nohup java -classpath .:./aa-media-2.0.0.jar:$CLASSPATH $JAVA_OPTS com.aaa.media.aaaMediaServer& 
    echo $! > $APPPIDFILE
    echo STARTED
    ;;

stop)
    echo "Stopping server ... "
    if [ ! -f $APPPIDFILE ]
    then
        echo "error: count not find file $APPPIDFILE"
        exit 1
    else
        kill -15 $(cat $APPPIDFILE)
        rm $APPPIDFILE
        echo STOPPED
    fi
    ;;

*)
    echo "Please enter start|stop ... "
    ;;

esac

exit 0


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值