前面三篇译文《TCMalloc:线程缓冲的Malloc》、《使用TCMalloc的堆栈检查》、《使用TCMalloc进行堆栈分析》介绍了TCMalloc的基本原理,以及堆栈分析和检查工具,TCMalloc优点很多,比glibc 2.3的malloc快、自带的堆栈工具可以轻松找出内存瓶颈和内存泄漏,给服务器开发指明了一条新的道路。...
分类:
其他好文 时间:
2014-10-20 17:22:31
阅读次数:
275
概述内存泄漏(memory leak)指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况,在大型的、复杂的应用程序中,内存泄漏是常见的问题。当以前分配的一片内存不再需要使用或无法访问时,但是却并没有释放它,这时就出现了内存泄漏。尽管优秀的编程实践可以确保最少的泄漏,但是根据经验,当使用大量的函...
分类:
其他好文 时间:
2014-10-19 01:14:13
阅读次数:
471
时隔四个多月,高手裸奔首选工具:Sandboxie沙盘终于迎来v4.14最新正式版。新版启用了全新的ASLR技术,其次解决了几个重大内存泄漏难题;另外就是修复 Chrome 浏览器系列问题。 Sandboxie是...
分类:
数据库 时间:
2014-10-17 20:15:15
阅读次数:
832
内存泄漏是当一个对象或变量在使用完成后没有释放掉,那么如果我们走了另外一个极端情况会什么样呢?这就导致过度释放(over release)问题,从而使对象“僵尸化”,对象称为僵尸(zombies)对象。一个对象已经被释放过了,或者调用者没有这个对象的所有权而释放它, 都会造成过度释放,产生僵尸对象。...
分类:
移动开发 时间:
2014-10-16 15:47:42
阅读次数:
270
1. 使用未分配成功的内存 解决案: ①在使用内存前检查指针是否为NULL ②参数是指针时,在函数入口处用assert进行判断 ③如果指针指向动态申请的内存,用if进行容错处理2. 使用分配成功,但未初始化的内存 解决案: ①定义数组后一定要初始化3. 内存泄漏 解决案: ...
分类:
编程语言 时间:
2014-10-15 18:35:40
阅读次数:
152
Valgrind是运行在Linux上一套基于仿真技术的程序调试和分析工具,它包含一个内核──一个软件合成的CPU,和一系列的小工具,每个工具都可以完成一项任务──调试,分析,或测试等。Valgrind可以检测内存泄漏和内存违例,还可以分析cache的使用等,灵活轻巧而又强大,能直穿程序错误的心脏,真可谓是程序员的瑞士军刀。
一、Valgrind的主要功能
Valgrind工具包包...
分类:
其他好文 时间:
2014-10-15 16:28:11
阅读次数:
215
在C++中,动态内存分配是一把双刃剑,一方面,直接访问内存地址提高了应用程序的性能,与使用内存的灵活性;另一方面,由于程序没有正确地分配与释放造成的例如野指针,重复释放,内存泄漏等问题又严重影响着应用程序的稳定性。
人们尝试着不同的方案去避免这个问题,比较常用的如智能指针,自动垃圾回收等,这些要么影响了应用程序的性能,要么仍然需要依赖于开发者注意一些规则,要么给开发者带来了另外一些很丑陋...
分类:
其他好文 时间:
2014-10-13 18:15:19
阅读次数:
232
OOM
内存泄漏引发很多问题:
1:程序卡顿,响应速度慢(内存占用高时JVM 虚拟机会频繁出发GC)
2:莫名其妙消失
3:直接崩溃
ANDROID 内存面临的问题
1: 有限的堆内存,原始只有16M
2:内存大小消耗等根据设备,操作系统等级,尺寸的不同而不同
3:程序不能直接控制
4:支持后台多任务处理
5...
分类:
移动开发 时间:
2014-10-11 17:08:55
阅读次数:
189
使用PHPExcel来生成 excel 文档是比较消耗内存的,有时候可能会需要通过一个循环来把大数据切分成若干个小的 excel 文档保存来避免内存耗尽。然而 PHPExcel 存在 circular references 的情况(貌似在最新的 1.6.5 版本中仍然没有去解决这个问题),如果在一次...
分类:
Web程序 时间:
2014-10-10 12:52:24
阅读次数:
178
来源:按字面了解,Window Leaked大概就是说一个窗体泄漏了,也就是我们常说的内存泄漏,为什么窗体会泄漏呢? 产生原因: 我们知道Android的每一个Activity都有个WindowManager窗体管理器,同样,构建在某个Activity之上的对话框、PopupWindow也有相应的W...
分类:
移动开发 时间:
2014-10-09 20:55:27
阅读次数:
197