JAVA的缓存应用02438.ppt

JAVA的缓存应用02438.ppt

ID:48795997

大小:973.50 KB

页数:48页

时间:2020-01-25

JAVA的缓存应用02438.ppt_第1页
JAVA的缓存应用02438.ppt_第2页
JAVA的缓存应用02438.ppt_第3页
JAVA的缓存应用02438.ppt_第4页
JAVA的缓存应用02438.ppt_第5页
资源描述:

《JAVA的缓存应用02438.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、JAVA缓存体系及应用2010.10.27目录带着问题来,带着答案走JAVA内存体系介绍基本缓存的使用缓存框架的介绍内存溢出状况分析内存检查工具的使用问题JVM内存的分配原理?JVM启动的时候如何正确的设置内存参数?JVM内存是不是越大越好?什么情况下大家用到了缓存处理,很好的解决了问题?缓存框架帮我们解决哪些问题,为什么要使用缓存框架?你是如何进行内存溢出检查的?JAVA内存体系介绍操作系统的内存使用和管理JVM内存的分类JVM内存参数设置及作用垃圾回收机制内存实时状态查询操作系统的内存使用和管理Windows内存使用虚拟内存是Win

2、dows管理所有可用内存的方式。Windows32位为每个进程分配了4G的虚拟地址空间(用于表示该进程有这么多的空间可用),4G是由于操作系统+CPU是32位的,寻址空间就只有2的32次方,因此得出4G的存储空间。Windows操作系统默认会给程序和系统预留2G的内存寻址空间;我们可以通过配置将应用程序的最大内存配置到3G。4G配置但电脑显示最多3.5内存。因为:xp/vista32bit在安装4G内存后会分配其中部分内存作为设备保留的内存地址。64位就不存在4GB空间的束缚了。Application2GB用于程序存放代码,数据,堆栈,

3、自由存储区WindowsSystem2GB共享内存,所有进程都用到的内存区域操作系统规定:一个应用程序所能承载的最大寻址内存是2GB(可以通过配置改变到3GB),因为主要是为了预留一部分给操作系统使用,叫做共享内存区。所以虽然一个程序理论上可以访问4GB内存,但是实际上只能分配2GB的空间。所以我们可以得出2个程序的最大使用内存是:2G(共享内存)+2*2G(程序内存)=6G为什么我的电脑是2G内存,但是在系统可以使用超过2G的内存空间,大概有4G!页面文件以上情况是由于页面文件控制的。这里很容易混淆一个概念,认为以上windows磁盘

4、用来充当内存的叫做虚拟内存,其实windows管理的内存都叫做虚拟内存。所以虚拟内存是:RAM(物理内存)+页面文件(磁盘内存)页面文件即当内存不够时系统会拿出一部分硬盘空间来充当内存使用,当内存占用完时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。比如:你的机器有2G内存,当使用的内存超过2G时,超过的部分就会将硬盘上的文件映射成内存来使用。按照这样逻辑我们不难得出只要虚拟内存够大,我们就可以无限制的使用,不过考虑到性能这也是不切实际的。以上只是很浅显的一个理解,其实Windows虚拟内存的管理是一个比较复杂的处理过程,由于wi

5、ndows的多任务机制,再配合虚拟内存,其实windows运行的程序所占用的内存是远远超过可分配内存的。应用程序1内存磁盘1激活应用程序2分配相应的内存34回收内存5将内存内容映射到页面文件并重新建立映射最小化应用程序67关闭应用程序释放虚拟内存应用程序289切换应用程序2读取页面文件放到物理内存中并重新建立映射10操作系统来调度当物理内存吃紧的情况下,会产生大量的页入,页出动作,从而降低系统运行速度3-5:表示页入动作8-10:表示页出动作再来看看任务管理器总数:RAM物理内存总大小可用数:当前RAM内存还剩余多少系统缓存:指的是系统

6、共享内存使用量提交更改(前面的):实际是虚拟内存使用量,包括RAM和页面文件提交更改(后面的):虚拟内存的总量总RAM+总的页面文件进程内存使用量,该数据指的是程序独占RAM内存和使用到的系统共享内存因为有共享成分在里面,所以所有程序内存加起来不一定等于系统RAM使用的总量。虚拟内存大小,指的是程序所用到的所有2G虚拟内存的寻址空间大小,一般会包含在RAM、页面文件、exe和dll中。关于Linux的内存管理Windows管理内存更加规范和统一,通过统一的内存映射和跟踪机制来完成,但是同时也失去了一定的灵活性。Linux管理内存不是很规

7、范,省去了内存映射,而是直接将内存提交到页面,并且只有当页面被真正使用了,才会将其绑定到内存中中。JVM内存分类系统级内存分配JVM的内存分配机制其实也是基于操作系统分配机制JVM最大的内存在win32下是2GJVM的内存使用情况实际被分为:JVM虚拟机、JAVA程序的字节码(classes)、系统内存空间NativeHeap(主要用于存放线程和一些系统级的对象和操作)、JAVA内存JavaHeap(真正的存放JavaObject的内存区域)Application2GB用于程序存放代码,数据,堆栈,自由存储区WindowsSystem2

8、GB共享内存,所有进程都用到的内存区域JvmPermanetNativeHeapJavaHeapSystemlibJAVA程序本身使用的内存区域存放线程、系统变量、一些类似Runtime的操作存放具体的Cl

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。