首页 > 后端开发 > 正文

如何查看java进程大量占用内存

2024-04-27 01:46:57 | 我爱编程网

今天我爱编程网小编整理了如何查看java进程大量占用内存相关信息,希望在这方面能够更好的大家。

本文目录一览:

如何查看java进程大量占用内存

如何查看java进程大量占用内存

如何查看java进程大量占用内存

你好,方法如下:

可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令:

(1)top

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器

可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令:

$ top -u oracle

内容解释:

PID:进程的ID

USER:进程所有者

PR:进程的优先级别,越小越优先被执行

NInice:值

VIRT:进程占用的虚拟内存

RES:进程占用的物理内存

SHR:进程使用的共享内存

S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数

%CPU:进程占用CPU的使用率

%MEM:进程使用的物理内存和总内存的百分比

TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。

COMMAND:进程启动命令名称

常用的命令:

P:按%CPU使用率排行

T:按MITE+排行

M:按%MEM排行

(2)pmap

可以根据进程查看进程相关信息占用的内存情况,(进程号可以通过ps查看)如下所示:

$ pmap -d 14596

(3)ps

如下例所示:

$ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' 其中rsz是是实际内存

$ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep oracle | sort -nrk5

其中rsz为实际内存,上例实现按内存排序,由大到小

如何查看java进程大量占用内存

Java程序占用内存太高了怎么办?

先看下是否有内存泄露,简单的方法就是隔一段时间检查下内存,看看是否是持续上升。

然后看下资源是否可以优化,比如你加载的图片有没有resize过,尽可能减少资源的内存消耗。

游戏卡顿最主要的是FPS帧率太低,把帧率统计输出来看下。检查下UI线程里或者OpenGL线程里是否做了I/O操作,这个是造成卡顿的主要原因。把I/O操作全部放入工作线程中,UI线程只做数据读取和渲染。这样帧率就可以提高了

如何查看java进程大量占用内存

java内存占用大堆内存少

首先java内存可以大体分为堆内存和栈内存。一般收的内存使用过大是指堆内存使用过大。一般分步骤分析。

现在内存过大到底到何种程度。是否引起了GC或者FUll GC。是否影响了正常工作。

1.明白现在内存有多大,可以通过工具看,和使用的内存比例。如果项目中需要缓存很多缓存,可以理解使用是合理的。如果服务器内存够大,应用可以适当调整XMX xms参数进行JVM调整。

2.如果系统中没有使用缓存,和大对象内存过高,那就考虑是否有内存泄漏。可以使用jmap等jVM调优工具进行对象分析。然后定位过高原因修改代码。

jmap -dump:format=b,file=文件名 [pid]

dump当前系统,根据dump文件我们可以分析当前系统中存在的内存问题。

分析dump文件的工具很多,JDK自带的Jhat,Eclipse也有相关的插件。

我使用的是Eclipse Memory Analyzer,功能很强大,能够生成各种报表,另外可以在不同的时间生成不同的dump,然后通过工具分析两个dump的内存变化。我爱编程网

大家专注我,我写了好多JVM 原理和调优的文章。

文版权归是三僡然所有,转载请标明出处。欢迎转载,欢迎评论,欢迎分享。如果你有文章想分享可以联系我。

以上就是我爱编程网小编给大家带来的如何查看java进程大量占用内存全部内容,希望对大家有所帮助!

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“如何查看java进程大量占用内存”相关推荐