RSS列 表示, 程序占用了多少物理内存。 虚拟内存可以不用考虑,它并不占用实际物理内存。 (2). top 命令也可以 其中VIRT(或VSS)列 表示,程序占用了多少虚拟内存。 同 ps aux 中的 VSZ列 RES列 表示, 程序占用了多少物理内存。同 ps aux 中的RSS列 2.在linux下, 查看当前系统占用了多少内存, 一般的命令是 free其中, free就是系统还有多少内存可以使用。但由于 linux 系统对内存使用有一个原则, 就是, 内存是宝贵的, 能使用多少就使用多少。 所以, linux会把已经调用过的包缓存起来,放在内存里。这样,实际上,可以使用的内存,就可以理解为, free+buffers+cached3.当你了解完这些命令以后, 再去使用ps aux 命令去查看的时候, 会发现一个奇怪的现象。 所有的 RSS 列的数据,加起来, 比物理内存的数要大很多。 比如, 物理内存为2G, 而RSS列的数据加起来,可能有5个G之多, 这是怎么回事了? 这是因为RSS列的值骗了我们。 linux的内存机制是这样的: 在运行一个程序时, linux会调用该程序依赖的链接库, 如lib.xx.so。 首先看该链接库是否被映射进内存中,如果没有被映射,则将代码段与数据段映射到内存中,否则只是将其加入进程的地址空间。 这样,当N个程序,依赖到lib.xx.so的时候, 实际上,内存中只有一个lib.xx.so ,而不是N个。 而RSS在显示一个程序占用的实际物理内存时, 将lib.xx.so也算了进来。 比如, X程序, 本身占用内存为5M, lib.xx.so 占用内存2M,lib.xx.so被N个程序共享依赖。 则RSS显示为,X程序运行,占用内存为7M。 实际上, X程序占用了5M空间。 多余的2m被讨入到RSS中了。 当你在用ps aux显示内存占用情况时, N个共享依赖lib.xx.so的N个程序,都把这2m空间,算在自己的RSS中了, 这样RSS的sum值,就比实际物理内存多了。 当然, linux的内存使用机制很复杂, 不是一句两句能说清楚的。这里只是简单的说明了一下, ps aux中的RSS值, 并不能真实反映物理内存的使用情况。 4. 如果查看更详细的内存使用情况, 可用以下几种方法, 或者几种方法结合使用:这几种方法,都需要root账户的权限(1). pmap -d $pid $pid 是正在运行的程序的pid(2). cat /proc/$pid/smaps smaps的数据比较详细,可简单的归纳一下,归纳的命令如下: cat /proc/$pid/smaps | awk '/Size|Rss|Pss|Shared|Private|Referenced|Swap/{val_name=gensub(/([a-zA-Z_]*).*/,"\\1",1,$1); list[val_name]+=$2; }END{for(val in list)print val,list[val];}' (3). cat /proc/$pid/maps(4). cat /proc/$pid/statm输出解释第一列 size:任务虚拟地址空间大小 第二列 Resident:正在使用的物理内存大小 第三列 Shared:共享页数 第四列 Trs:程序所拥有的可执行虚拟内存大小 第五列 Lrs:被映像倒任务的虚拟内存空间的库的大小 第六列 Drs:程序数据段和用户态的栈的大小 第七列 dt:脏页数量(5). vmstat这个命令据说也可以提供一些参考信息,具体还未研究 5.作为phper,尝试过使用php的函数memory_get_usage(), 该函数也不能得到php当前运行的程序,实际的,真正占用的内存数量。 如果真想得到,php真正占用的内存, 大概只能在, 程序运行的开始,执行一次memory_get_usage(). 在程序运行结束,执行一次memory_get_usage()。 将两者的值相减,得到的值, 应该是一个相对比较准确的,内存占用数量了。 这个方法还没有测试, 考虑到, 得到这个数量,也没有实际意义, 加上平时又比较忙,懒得试了。

java 内存和实际内存_请问更改eclipse内存和更改jvm内存是一会事儿吗?相关推荐

  1. java内存屏障详解_图文带你了解volatile底层和内存屏障之间的关系

    欢迎大家搜索"小猴子的技术笔记"关注我的公众号,有问题可以及时和我交流. LoadLoad Barriers:在两个读指令之间插入一个"LoadLoad"的内存 ...

  2. java中实现具有传递性吗_Java中volatile关键字详解,jvm内存模型,原子性、可见性、有序性...

    一.Java内存模型 想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的. Java内存模型规定了所有的变量都存储在主内存中.每条线程中还有自己的工作内存,线程的工作 ...

  3. jvm 参数_一文带你深入了解JVM内存模型与JVM参数详细配置

    JVM基本是BAT面试必考的内容,今天我们先从JVM内存模型开启详解整个JVM系列,希望看完整个系列后,可以轻松通过BAT关于JVM的考核. 一.JVM内存结构 由上图可以清楚的看到JVM的内存空间分 ...

  4. mysql修改配置文件内存后无法启动_记一次Oracle实例在修改内存大小后无法启动的惊悚经历...

    事件回首: 晚上11点加班中,开发中产品将在第二天向大客户演示.突然一大群测试同学消息轰炸:500,服务崩了.我发请求一看,Oracle挂了,简单.因为开发中使用的云服务器资源占用快爆了,时不时会出现 ...

  5. spark内存溢出怎么解决_和平精英:更新需要预留6G内存,玩家抱怨手机扛不住,怎么解决?...

    嗨,小伙伴们大家好呀!<和平精英>新版本终于来了哈,小伙伴们在22号上午登录游戏,就可以收到更新提示,点击进行更新就好了.或者是在各个应用商店里等待更新推送,也行哦! 但是呢,每到游戏更新 ...

  6. java value是什么意思_请问java中的和=是什么意思

    慕的地10843 public class TestRightMove {public static void main(String[] args){int a = 5;//00000101int ...

  7. 内存地址 哪个程序_记一次排查线上程序内存的忽高忽低,又是大集合惹祸了...

    一:背景 1. 讲故事 昨天继续还技术债,优化一轮后的程序拉到线上后内存继续忽高忽低,低的时候20G,高的时候30G,过了一会又下降了几个G,毫无疑问,程序中有什么集合或者什么操作占用了大量内存,所以 ...

  8. static在内存层面的作用_「C++ Primer plus 心得」9.内存模型和名称空间

    本章内容包括: 单独编译 存储持续性.作用域和链接性 定位new运算符 名称空间 C++ 为在内存中存储数据方面提供了多种选择.可以厅数据保留在内存中的时间长度(存储持续性)以及程序的哪一部分可以访问 ...

  9. java scanner以回车结束_请问Scanner在输入回车后,如何才能退出?

    package com.imooc; import java.util.Scanner; /*@kernal * 功能描述: * 为指定成绩加分,直到分数大于等于 60 为止, * 输出加分前和加分后 ...

  10. java会编译失败吗?_请问为什么这个通用java代码不会编译?

    为什么这个通用java代码不会编译? 在这个简化的例子中,我有一个泛型类,以及一个返回Map而不管类型参数的方法.当我没有在包含类上指定类型时,为什么编译器会清除地图上的类型?import java. ...

最新文章

  1. cannot access a closed file
  2. PHP中对数据库操作的封装
  3. sql查询 关联帖子_从零学会sql,复杂查询
  4. list contains方法_Java中给List去重的5种方法,谁的效率更高?
  5. android ios web兼容,js与android iOS 交互兼容
  6. FreeBSD的功能特点
  7. android代码关闭数据库,android – 我应该如何正确打开和关闭我的数据库
  8. 职场英语口语100句 (转载)
  9. 一说起丁克,我们普遍的认知就是,不生孩子
  10. 基于stm32单片机智能交通灯设计Proteus仿真
  11. STM32/GD32下用PWM+DMA驱动WS2812B RGB全彩灯珠
  12. 甘肃自考计算机技术,甘肃自考计算机与网络技术基础课程考试说明
  13. python使用匿名函数计算长方形的面积
  14. 移动端页面底部导航被浏览器工具栏遮盖解决方法
  15. 4000 字详解「用户反馈」的收集与分析
  16. 低成本成FS68001A、FS68003无线充SOC芯片
  17. 无人机航测技术及应用概述
  18. 关于 trello 和 slack 的感想及使用经验
  19. Code Review 有感
  20. 半导体物理——PN结

热门文章

  1. .NET Core TDD 前传: 编写易于测试的代码 -- 全局状态
  2. HEXA机器人荣获CES Asia2018 创新奖
  3. SQL Where in list 问题
  4. 软工网络15个人阅读作业2——提问题
  5. Halcon算子翻译——default
  6. openwrt上wifi探针的实现
  7. CentOS系列启动流程和内核原理(5系列,6系列,7系列)
  8. 写一个js向左滑动删除 交互特效的插件——Html5 touchmove
  9. 札记__ADT:URL,Lua:strlen方法
  10. 为什么linux默认都没有MP3和视频或者连FLASH都没有呢?