`

Java JVM 内存使用情况查看

    博客分类:
  • Java
阅读更多

        JAVA WEB项目有时候出现内存溢出的情况,但是在本地tomcat下又实在无法重现出来。

 查了下API,发现Java提供了Runtime类:

      

public class Runtimeextends Object

 

       每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过 getRuntime 方法获取当前运行时。

应用程序不能创建自己的 Runtime 类实例。

     

       通过Runtime查看一下内存的使用情况。

       

<%
	NumberFormat format = NumberFormat.getNumberInstance();
	long freeMem = Runtime.getRuntime().freeMemory();
	long totalMem = Runtime.getRuntime().totalMemory();
	long usedMem = totalMem - freeMem;
	long maxMem = Runtime.getRuntime().maxMemory();
	out.print("Max Mem:" + format.format(maxMem) + " byte<br/>");
	out.print("Total Mem:" + format.format(totalMem) + " byte<br/>");
	out.print("Free Mem:" + format.format(freeMem) + " byte<br/>");
	out.print("Used Mem:" + format.format(usedMem) + " byte<br/>");
	out.print("Usage:" + new BigDecimal(usedMem).divide(new BigDecimal(totalMem), 4, BigDecimal.ROUND_CEILING).multiply(new BigDecimal(100)) + "%<br/>");
%>

    

static Runtime getRuntime()
返回与当前 Java 应用程序相关的运行时对象。

 

long totalMemory()
返回 Java 虚拟机中的内存总量。

 

long freeMemory()
返回 Java 虚拟机中的空闲内存量。

 

long maxMemory()
返回 Java 虚拟机试图使用的最大内存量。

 

效果:

        

Max Mem:1,072,486,400 byte
Total Mem:53,228,032 byte
Free Mem:3,540,896 byte
Used Mem:49,687,136 byte
Usage:93.3500%

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    java获得jvm内存大小

    了解并监控JVM的内存使用情况,对于预防和解决内存溢出错误至关重要。通过动态地调整`-Xms`和`-Xmx`参数,可以在运行时根据实际需求优化内存分配,从而提高程序的性能和稳定性。此外,定期检查和分析`heapSize`、`...

    java -jvm 内存分配和jvm调优

    总结,Java JVM内存分配和调优是一项复杂的任务,需要结合实际应用的需求和性能指标来调整。通过理解JVM内存模型,选择合适的垃圾收集器和设置合理的内存参数,可以有效提升Java应用的性能和稳定性。在实践中,不断...

    JAVA jvm DUMP 内存分析

    性能测试,线程的 dump 看到线程的 死锁,等待 运行状态

    JAVA JVM内存监控工具总结

    例如,`jstat -gc`用于查看GC的详细信息,包括年轻代、老年代和永久代的使用情况。其他选项如`jstat -class`关注类装载的统计,`jstat -compiler`则关注JIT编译的情况。 3. **jmap (Memory Map for Java)** jmap能...

    java中jvm内存分配相关资料总结整理

    本资料总结主要关注JVM内存分配及其运行原理,这对于理解和优化Java应用程序的性能至关重要。 1. **JVM内存结构** JVM内存分为几个关键区域:方法区(Method Area)、堆(Heap)、栈(Stack)、程序计数器(PC ...

    JVM内存日志

    总结,通过理解JVM内存结构,熟练运用`jmap`工具,结合`dump.txt`文件的分析,我们可以有效地诊断和优化Java应用程序的内存使用,提高系统性能。在实际工作中,定期监控和分析JVM内存日志是确保应用稳定性和高效运行...

    Linux查看CPU和内存使用情况查看jvm内存使用情况.pdf

    此外,要查看内存使用情况,可以使用`free`命令。它会列出总内存、已使用、空闲、共享、缓冲区和缓存等信息。在`free`命令的输出中,第二行的"used"和"free"字段表示操作系统整体视图下的内存使用,而第三行的"used...

    jvm内存监控工具使用

    无论是内存使用情况、线程状态、还是 GC 行为,VisualVM 都能提供详尽的数据和图表,帮助开发者快速定位问题。 #### jps:Java 进程快照 jps 工具类似于 Unix/Linux 系统中的 ps 命令,用于列出本地或远程主机上...

    idea插件JVM内存工具JProfiler11

    一旦启动,JProfiler11将连接到当前运行的JVM实例,实时展示内存使用情况。它的主要功能包括: 1. **内存分配和泄漏检测**:JProfiler11能详细追踪对象的创建、存活和销毁过程,帮助识别内存泄漏。通过查看对象分配...

    java jvm内存结构 调优

    java jvm内存结构 调优

    JVM内存溢出问题解析

    JVM 内存溢出是指程序运行所需的内存大于虚拟机能提供的最大内存的情况。这种情况可能是由于数据量过大、死循环、静态变量和静态方法过多、递归、无法确定是否被引用的对象等原因引起的。同时,虚拟机不回收内存...

    java jvm内存模型

    "Java JVM内存模型" Java虚拟机(JVM)内存模型是Java虚拟机的核心组件之一,它定义了Java程序在运行时的内存布局和管理方式。JVM内存模型主要分为五个部分:程序计数器、虚拟机栈、本地方法栈、堆、方法区。 1. ...

    java JVM 内存回收

    Java虚拟机(JVM)的内存回收,也称为垃圾收集(GC),是Java语言特性的重要组成部分,用于自动管理...在实际应用中,应根据系统需求和负载情况选择合适的GC策略,并进行适当的调优,以达到最佳的内存使用和响应速度。

    JVM内存空间分配笔记

    - **工具介绍**:JConsole是一款强大的性能监控工具,它可以显示Java应用程序的内存使用情况、线程活动、类装载等信息。 - **使用步骤**: 1. 运行JConsole。 2. 运行需要监控的Java程序。 3. 使用JConsole连接到...

    Java 虚拟机JVM内存模型

    ### Java 虚拟机JVM内存模型知识点 #### 1. JVM概述 ##### 1.1 Java的特性与JVM的应用 Java语言的特性包括跨平台性、面向对象、安全性等。JVM是Java程序能够跨平台运行的关键,它负责将Java源代码转换成与平台无关...

    jvm内存状况查看

    Java虚拟机(JVM)内存管理是Java应用程序性能优化的关键环节。...通过输出GC日志,结合各种参数和工具,开发者能够深入理解内存使用情况,进而优化程序性能,防止因内存问题导致的性能瓶颈和系统稳定性问题。

    JVM-内存管理 2012-12.pdf

    内存分析工具如jvisualvm、jmap、jhat和MAT(Memory Analyzer Tool)等,为Java开发者提供了分析JVM内存使用状况的能力。这些工具可以用来监控堆内存的使用情况,识别内存泄漏,分析内存使用趋势,帮助开发者进行...

    在Eclipse状态栏上增加JVM内存用量指示器

    5. **使用插件**:安装并配置好插件后,按照插件的使用说明,在Eclipse中激活内存监控功能,使其在状态栏显示JVM内存使用情况。 对于"源码"标签,这可能意味着实现这个功能可能涉及查看和理解Eclipse或相关插件的源...

    mat(mac)---jvm内存分析工具

    用户可以比较两个不同时间点的堆转储,以查看内存使用情况的变化,这有助于追踪内存问题的发展过程。 9. **阈值设置**: 开发者可以设定阈值来筛选出大小超过特定限制的对象,从而快速定位可能的大对象或频繁增长...

Global site tag (gtag.js) - Google Analytics