今天在SourceForge下到了FastMM (Fast Memory Manager),听说比官方的内存管理快多了,试了一下,果然不错。目前最新的是4.27。

就我的使用范围来说,我就是想看看我的程序有没有内存泄漏。首先在下载的文件里你会找到一个文件,位置在
Replacement BorlndMM DLL\Precompiled\for Delphi IDE\Performance\BorlndMM.dll,
替换掉Delphi\Bin下的相应文件就可以完成对IDE的提速。

对自己编的程序的提速也非常简单,只要在.dpr工程文件里的uses部分加上FastMM4就可以了,但必须是加在第一位,还要记得设置路径。重新编译你的程序就可以完成提速。一般情况下,感觉程序的启动速度会有提高。如果你的程序有内存泄漏的话那就会在程序关闭时弹出一个对话框告诉你你的程序有内存泄漏,并指出相应的有内存泄漏的类。例如,我的程序中用到了IntraWeb 7.1.12。就会有内存的泄漏,而且是没有法子改的。于是乎就在每次程序结束时留有一个对话框,着实郁闷。其实也是有办法解决的。

打开FastMM4Options.inc文件。在文件的末尾添加如下代码:

{$define Release}

{$ifdef Release}

? {Specify the options you use for release versions below}

? {$undef FullDebugMode}

? {$undef CheckHeapForCorruption}

? {$define ASMVersion}

? {$undef EnableMemoryLeakReporting}

? {$undef UseOutputDebugString}

? {$undef LogErrorsToFile}

? {$undef LogMemoryLeakDetailToFile}

{$else}

? {Specify the options you use for debugging below}

? {$define FullDebugMode}

? {$define EnableMemoryLeakReporting}

? {$define UseOutputDebugString}{$endif}

再编译你的程序,现在,即使你的程序有内存泄漏,FastMM也不会提醒你了。当然,要恢复也很容易,只要将上面的第一行注释掉就可以了。如下:

//{$define Release}

总的来说,FastMM给我的感觉是非常好,我将我负责的两个程序全都重新编译了一下,启动速度的提高让人满意。网上有人说对使用DevExpress公司的控件组效果很明显,呵呵,我用的就是这套控件组,及时雨呀!

http://www.cnblogs.com/dashan9zj/archive/2008/11/28/1343069.html

快速美眉(FastMM)使用手记的更多相关文章

  1. linux操作mysql命令快速手记 — 让手指跟上思考的速度(二)

    这一篇是<mysql内建命令快速手记>的姐妹篇,废话不再赘述,直接上干货,跟老铁慢慢品 1.mysql -hlocalhost -uroot -proot,-h,-u,-p分别代表ip,u ...

  2. .NET手记-ASP.NET MVC快速分页的实现

    对于Web应用,展示List是很常见的需求,随之而来的常见的分页组件.jQuery有现成的分页组件,网上也有着大量的第三方分页组件,都能够快速实现分页功能.但是今天我描述的是用基本的C#和html代码 ...

  3. Doris开发手记3:利用CoreDump文件快速定位Doris的查询问题

    Apache Doris的BE部分是由C++编写,当出现一些内存越界,非法访问的问题时会导致BE进程的Crash.这部分的问题常常较难排查,同时也很难快速定位到对应的触发SQL,给使用者带来较大的困扰 ...

  4. Scala学习手记1 - 快速体验

    又重新开始了scala的学习,因为中断了太长时间,所以这次还得从零开始.学习的过程就记录在这个博客上了. 这次学习的教程是<scala程序设计 java虚拟机多核编程实战>,我在多看上买了 ...

  5. linux命令快速手记 — 让手指跟上思考的速度(四)

    pm2 list:列出pm2方式启动的所有程序 pm2 monit:显示每个应用程序的CPU和内存占用情况 scp:远程复制和本地上传,适用于本地ssh登录到远程服务器 scp root@10.10. ...

  6. linux最基础最常用的命令快速手记 — 让手指跟上思考的速度(三)

    这一篇作为姐妹篇的第三篇,废话不多说,我觉得这个比mysql的还要重要,为什么,一旦你摊上linux 敲键盘输入命令简直是要飞的速度,不断的卡壳查命令,效率太低了,而且非常严重的影响思绪,思绪! 某些 ...

  7. mysql内建命令快速手记 — 让手指跟上思考的速度(一)

    在微信公众号上看到一篇文章说的很好,意思是说,大牛在尝试各种方案的时候可能并没有超神的预测和筛选能力 只是你通常测试一种情况时,大神已经测试了好几种方案了,讲的是"为什么大多数程序员不喜欢写 ...

  8. [小北De编程手记] : Lesson 06 玩转 xUnit.Net 之 定义自己的FactAttribute

    xUnit.Net本身提供了标记测试方法的标签Fact和Theory.在前面的文章<Lesson 02 玩转 xUnit.Net 之 基本UnitTest & 数据驱动>中,也对它 ...

  9. FastMM配置文件详解

    FastMM最新版本提供了中文语言包,可方便国内使用.下载地址为 http://sourceforge.net/projects/fastmm/ 配置文件为:FastMM4Options.inc, 中 ...

随机推荐

  1. 重新理解一遍UpdatePanel

    楼主只是想每天写点东西这样帮助自己的一个累积吧. 说明:楼主现在已经清楚了AJAX是怎么回事了,现在由于工作原因又摆弄起了UpdatePanel所以从AJAX的角度来分析一下UpdatePanel的使 ...

  2. Java 集合嵌套List of List

    在LeetCode上遇到这样返回值 public class Solution { public List<List<Integer>> levelOrder(TreeNode ...

  3. Linux 下搭建ftp服务器 指定用户指定目录及其他操作

    搭建 Linux下 rpm -qa |grep vsftpd查看是否安装 没安装yum安装 /etc/vsftpd/目录下有vsftpd.conf配置文件 根据需求 进行配置  是否使用匿名用户以及文 ...

  4. Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Chinese_PRC_CI_AS" in the equal to operation.

    Scenario : 这个问题是我的存储过程中用到临时表时发生的. 应该是sql server 服务器的排序规则 (SQL_Latin1_General_CP1_CI_AS ) 与数据库的排序规则(C ...

  5. Oracle EBS-SQL (WIP-16):检查期间手工下达的车间任务数.sql

    select WE.DESCRIPTION                                                                任务说明, --DECODE( ...

  6. 【自学php】第一天-macbook上配置php

    今天MacBook到手了,就正式开始学习php了.先搭个环境,由于MacBook自带了Apache和php所以只要修改下配置启动就可以了. 1.启用root用户(如果不启用root,下面的命令前都要加 ...

  7. 字符编码知识:Unicode、UTF-8、ASCII、GB2312等编码之间是如何转换的?

    转自:  http://apps.hi.baidu.com/share/detail/17798660 字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得字符编码的知识.不注意的人可能对这个不 ...

  8. 泛型、注解、log4j

    泛型.注解.log4j 泛型:将运行阶段的类型错误提前到编译阶段. 声明泛型必须两端的一致,要么左面有,要么右边有,两边都有的两边必须一致. 泛型方法: static 之后 返回类型之前进行声明 泛型 ...

  9. 在magento中定义static block

    在magento中如何调用static block?(系统面板内CMS---->static block) 解答:若想在站点页面的某个地方放点静态的内容,比如广告,或者是促销信息之类的,这样的东 ...

  10. 3.C#/.NET编程中的常见异常(持续更新)

    1.Object reference not set to an instance of an object. 未将对象引用(引用)到对象的实例,说白了就是有个对象为null,但是你在用它点出来的各种 ...