java 获取非堆内存使用量

Runtime runtime = Runtime.getRuntime();
long totalMemery = runtime.totalMemory();
总的非堆内存
 
堆内存使用量
long usedMemory = runtime.totalMemory()-;runtime.freeMemory();
 
cookie用法
 

java.lang.management
类 MemoryUsage

java.lang.Object
  继承者 java.lang.management.MemoryUsage

public class MemoryUsage
     
     
      
      extends 
      
      Object
     
     
 
  

表示内存使用量快照的 MemoryUsage 对象。MemoryUsage 类的实例通常由某些特定的方法构造,这些方法用于获得关于 Java 虚拟机的单个内存池或 Java 虚拟机的全部堆(或非堆)内存的内存使用量信息。

MemoryUsage 对象包含四个值:

  • init表示 Java 虚拟机在启动期间从操作系统请求的用于内存管理的初始内存容量(以字节为单位)。Java 虚拟机可能在运行过程中从操作系统请求更多的内存,也可能将内存释放给系统。init 的值可以是不明确的。
    used表示当前已经使用的内存量(以字节为单位)。
    committed表示保证可以由 Java 虚拟机使用的内存量(以字节为单位)。已提交的内存量可以随时间而变化(增加或减少)。Java 虚拟机可能会将内存释放给系统,committed 可以小于 initcommitted 将始终大于或等于 used
    max表示可以用于内存管理的最大内存量(以字节为单位)。可以不定义其值。如果定义了该值,最大内存量可能随时间而更改。已使用的内存量和已提交的内存量将始终小于或等于 max(如果定义了 max)。如果内存分配试图增加满足以下条件的已使用内存将会失败:used > committed,即使 used <= max 仍然为 true(例如,当系统的虚拟内存不足时)。
以下是内存池的示例图:

        +----------------------------------------------+
        +           |                  +
        +           |                  +
        +----------------------------------------------+

        |--------|
           init
        |---------------|
               used
        |---------------------------|
                  committed 
        |----------------------------------------------|
                            max 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值