`

关于内存管理的一些建议

阅读更多

了解完这些之后,以下的转载一热衷于钻研技术的哥们Richen Wang关于内存管理的一些建议——
1、手动将生成的无用对象,中间对象置为null,加快内存回收。
2、对象池技术 如果生成的对象是可重用的对象,只是其中的属性不同时,可以考虑采用对象池来较少对象的生成。如果有空闲的对象就从对象池中取出使用,没有再生成新的对象,大大提高了对象的复用率。
3、JVM调优 通过配置JVM的参数来提高垃圾回收的速度,如果在没有出现内存泄露且上面两种办法都不能保证内存的回收时,可以考虑采用JVM调优的方式来解决,不过一定要经过实体机的长期测试,因为不同的参数可能引起不同的效果。如-Xnoclassgc参数等。

推荐的两款内存检测工具
1、jconsole  JDK自带的内存监测工具,路径jdk bin目录下jconsole.exe,双击可运行。连接方式有两种,第一种是本地方式如调试时运行的进程可以直接连,第二种是远程方式,可以连接以服务形式启动的进程。远程连接方式是:在目标进程的jvm启动参数中添加-Dcom.sun.management.jmxremote.port=1090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false  1090是监听的端口号具体使用时要进行修改,然后使用IP加端口号连接即可。通过该工具可以监测到当时内存的大小,CPU的使用量以及类的加载,还提供了手动gc的功能。优点是效率高,速度快,在不影响进行运行的情况下监测产品的运行。缺点是无法看到类或者对象之类的具体信息。使用方式很简单点击几下就可以知道功能如何了,确实有不明白之处可以上网查询文档。

2、JProfiler 收费的工具,但是到处都有破解办法。安装好以后按照配置调试的方式配置好一个本地的session即可运行。可以监测当时的内存、CPU、线程等,能具体的列出内存的占用情况,还可以就某个类进行分析。优点很多,缺点太影响速度,而且有的类可能无法被织入方法,例如我使用jprofiler时一直没有备份成功过,总会有一些类的错误。

 

转自:http://topic.csdn.net/u/20090602/10/BD9D4BA2-DBEB-49B3-8651-67C5DE2B228A.html

分享到:
评论

相关推荐

    内存管理源代码-内存管理源代码

    建议自己写操作系统的朋友下载; 建议使用一个没有内存管理的操作系统的朋友下载; 建议对内存管理实现感兴趣的朋友下载

    浅析C#编程中的内存管理

    关于C#程序中一些常用的内存管理简介和一些好的建议,希望对大家能有一些用处。

    C语言内存管理与内存泄露

    1-1 C语言内存管理方式 1-2 C语言内存管理 1-3 C语言内存使用要点及常见错误 1-4 在Windows下如何跟踪内存泄露 1-5 Windows内存管理简述 1-6 总结和建议读者的练习

    C++并发编程中的内存管理笔记.md

    本文首先阐述了内存管理在系统优化中的重要性,然后介绍了C++中的动态内存管理和智能指针使用。接着讲解了并发编程中的原子操作与互斥锁来实现线程安全。最后从局部性原理和内存对齐等方面介绍了性能优化思想,并给出...

    探讨Android内存管理

    在看这篇文章之前,需要Linux内存管理基础,推荐先学习一些Linux内存管理基础知识点,这里我们在做一些应用层的优化工作,但从底层理解一些原理性的知识点,对我们有较大帮助。 主要讨论四点内容: Android 内存管理...

    C语言内存管理与联合结构课件笔记.md

    本课件首先介绍了C语言中的内存管理知识,包括堆栈概念、动态内存分配函数及内存泄漏等问题,并给出了示例代码。然后详细讲解了C语言中的结构体与联合的定义、访问及嵌套使用,每部分都配有代码实例说明。内容结构清晰,...

    C语言实现 + 存储管理实验 + CPP源程序 + 实现页表的数据结构、分页式内存空间的分配及回收(建议采用位图法)页面置换算法

    要求实现:页表的数据结构、分页式内存空间的分配及回收(建议采用位图法)、地址重定位、页面置换算法(从FIFO,LRU,NRU中任选一种)。 提示:可先用动态申请的方式申请一大块空间,然后假设该空间为内存区域,对该...

    AIX进程内存分配与回收策略及应用开发建议.docx

    AIX进程内存分配与回收策略及应用开发建议.docx

    基于JavaScript实现内存管理(操作系统项目)【100012825】

    1.背景:内存管理——动态分区分配方式的模拟。初始内存空间为 640K,分别利用首次适应算法和最佳适应算法进行内存块的分配和回收。 2.开发:使用javascript进行开发。 3.运行:使用浏览器运行index.html即可,已经...

    模拟请求段式存储管理

    物理内存管理:建议采用空闲块表方案 5 、 根据用户输入进程信息(进程名、长度),自动模拟调入程序到内存,可同时调 入多个进程; 6 、 显示当前各进程内存状态 7 、 选定进程后,根据用户输入的指令...

    我自己写的内存管理的程序

    我用C++写的内存管理的程序,将来要用到我自己的操作系统之中的,因为我没有仔细的研究Linux的内存管理,所以自己凭感觉写了这个程序,希望专家给谢建议

    内存问题引起的常见故障

    6:感染电脑的病毒程序常驻留内存中,导致CMOS参数中关于内存的相关参数值被修改,导致内存值与内存条实际内存大小不符,这将会导致电脑在使用时出现速度变慢或是系统死机等现象。 7:电脑进行内存扩充选择了与主板...

    智能内存管理软件V4.0

    软件体积很小,但能实时监控系统的内存占用,能适时释放内存,很安全,内存小的机器,建议使用下

    Android代码-安卓内存清理 改进版

    安卓手机内存清理 开源版,包括内存加速,垃圾清理,自启管理,软件管理等。 说明 >现修复android5.0以上不能查看进程的问题,暂时不能支持7.0的查看进程的功能,欢迎各位提出相应的意见或建议,如不能配置好环境,...

    MMP内存池_源码.pdf

    对于需要定制内存池的朋友,本文档应该是一份不错的资料。本文介绍了几种常用的内存管理优化方案,并提吃定制内存池得一些建议。最后,根据一个实际项目的特点,定制了一个内存池(MMP内存池)并实现该内存池。

    游戏画面就弹出内存不能为read修复工具

    建议将虚拟内存撤换,删除WindowsPrefetch目录下所有*.PF文件,让windows重新收集程序的物理地址。 例三:在XP下双击光盘里面的“AutoRun.exe”文件,显示“0x77f745cc”指令引用的“0x00000078”内存。该内存不能...

    memlist 内存开发帮手

    链表内存,将malloc出来的内存统一添加至链表管理,退出时统一释放 https://github.com/heysion/memlist 有问题之间题bug给我谢谢 编译方法 ==== >tips >默认编译成静态库建议采用静态库编译的方法编译进去 静态...

    对操作系统内存管理的模拟(原理)

     下面我将我对内存管理的一些问题的理解列出来,如果你看了之后有什么不同意见,可以留言给我,我很期待你的意见或者建议,上次写了一个ARM串行通信的例子,结果没人留言,不知道为什么,园子里没人做这方面的工作...

    内存清理器Mem Reduct

    Mem Reduct 一款小巧的内存优化软件,轻量级的实时内存管理应用程序,用于监控和清理计算机上的系统内存。Mem Reduct 使用未记录的内部系统功能(Native API)清除系统缓存。 Mem Reduct Mem Reduct 老电脑必备,...

    内存释放大师

    提高运行速度的内存管理工具。内存释放专家能够有效释放应用程序在运行时未能及时释放的内存资源,并提供给需要使用大量内存的程序使用。它在释放内存时不会加重系统负担,保证系统运行流畅,建议勿将定时释放间隔...

Global site tag (gtag.js) - Google Analytics