作为一个服务器端的应用,最基本的要求就是稳定,当然要做一个稳定的服务器端,需要涉及到很多方面, 内存泄露就是稳定的一个致命杀手,因为服务器的物理内存是有限的,即使一个功能有很小的内存泄露,经过 长时间的运行,也会累积成一个非常大的内存泄露,导致服务器内存耗尽,系统崩溃.因此珍惜服务器资源是 开发者必须重视的(当然了,对于内存无法管理的语言及框架,那就算了). 最新版的kbmmw 中加入了内存调试功能,这个功能不但可以应用在kbmmw 服务器中,你也可以在其他程序中 使用. 其实自从delphi…
转载地址:http://www.cnitblog.com/martin/archive/2006/04/21/9460.html 首先,应该是MFC报告我们发现内存泄漏.注意:要多运行几次,以确定输出的内容不变,特别是{}之间的数值,不能变,否则下面的方法就不好用了. 我们来看看:     bytes  long . Data:  <            >  1F 1F 1F 1F 1F CD CD CD CD CD  ) 告诉我们MFC认为是在该文件的54行,发生了内存泄漏.你双击改行就…
调试模式下内存窗口的使用 在调试期间,"内存"窗口显示应用使用的内存空间.调试器窗口(如"监视"."自动"."局部变量"和"快速监视"对话框 )会显示存储于内存中特定位置的变量. "内存"窗口显示总体概况. 内存视图对于检查大片的数据(如缓冲区和大的字符串)很方便,这些内容在其他窗口中显示得不太好. 打开"内存"窗口与其他调试器窗口一样,"内存"窗…
从去年开始,kbmmw 慢慢增加内涵,除了完善各种服务外,陆续增加和扩展了作为一个中间件必须有的功能, 例如,权限管理.日志系统.调度系统.内存调试等功能. 今天给大家介绍一下kbmmw 的调度事件,调度事件的主要目标就是”在指定时间干,必须干“,不是“爱干”不干,是“必须干” :). 在传统的delphi 中事件调度室通过两种方式,一种方式通过Ttimer 来实现,(我20年做的母校的食堂餐饮消费系统就是通过Ttimer来轮询 POS 机的).另外一种就是通过扩展Tthread 线程类,通过后…
在阅读本文之前,如果你连堆栈是什么多不知道的话,请先阅读文章后面的基础知识. 接触过编程的人都知道,高级语言都能通过变量名来访问内存中的数据.那么这些变量在内存中是如何存放的呢?程序又是如何使用这些变量的呢?下面就会对此进行深入的讨论.下文中的C语言代码如没有特别声明,默认都使用VC编译的release版. 首先,来了解一下 C 语言的变量是如何在内存分部的.C 语言有全局变量(Global).本地变量(Local),静态变量(Static).寄存器变量(Regeister).每种变量都有不同的…
Leaktracer,Valgrind,ElectricFence 内存泄漏分类 以发生的方式来分类,内存泄漏可以分为4类: 常发性 发生内存泄漏的代码会被多次执行到,每次被执行的时候都会导致一块内存泄漏. 偶发性 发生内存泄漏的代码只有在某些特定环境或操作过程下才会发生.常发性和偶发性是相对的.对于特定的环境,偶发性的也许就变成了常发性的.所以测试环境和测试方法对检测内存泄漏至关重要. 一次性 发生内存泄漏的代码只会被执行一次,或者由于算法上的缺陷,导致总会有一块且仅一块内存发生泄漏.比如,在…
Linux就这个范儿 第15章 七种武器  linux 同步IO: sync.fsync与fdatasync   Linux中的内存大页面huge page/large page  David Cutler  Linux读写内存数据的三种方式 台湾作家林清玄在接受记者采访的时候,如此评价自己30多年写作生涯:“第一个十年我才华横溢,‘贼光闪现’,令周边黯然失色:第二个十年,我终于‘宝光现形’,不再去抢风头,反而与身边的美丽相得益彰:进入第三个十年,繁华落尽见真醇,我进入了‘醇光初现’的阶段,真正…
动态链接库中分配内存引起的 本文主要是探讨关于在动态链接库分配的内存在主程序中释放所产生的问题,该问题是我在刚做的PJP工程中所遇到的,由于刚碰到之时感动比较诡异(这也是学识不够所致),所以将它写下来,大家一起分享. 问题来由: 由于该工程中要用到声音,所以我的分工之一就是用DirectMusic和DirectSound来开发声音播放的动态库,以提供给该工程的两个部分:仿真控制部分( 语音 )和三维部分( 场景声音 )使用,两个工程中的声音都以单独的线程播放,且两个线程几乎相同.,然而该动态库在…
在阅读本文之前,如果你连堆栈是什么多不知道的话,请先阅读文章后面的基础知识.   接触过编程的人都知道,高级语言都能通过变量名来访问内存中的数据.那么这些变量在内存中是如何存放的呢?程序又是如何使用这些变量的呢?下面就会对此进行深入的讨论.下文中的C语言代码如没有特别声明,默认都使用VC编译的release版.   首先,来了解一下 C 语言的变量是如何在内存分部的.C 语言有全局变量(Global).本地变量(Local),静态变量(Static).寄存器变量(Regeister).每种变量都…
原文网址:http://android-performance.com/android/2014/02/17/android-manage-memory.html 本文内容翻译自:http://developer.android.com/training/articles/memory.html 随机存取存储器(RAM)再任何软件开发环境中都是宝贵的资源,但是在移动操作系统中,内存资源更为宝贵,使用时也会收到限制.虽然Android的Dalvik虚拟机有运行时的垃圾回收机制,但是这不意味着你的A…