分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

FastMM是一个替换Embarcadero Delphi Win32应用程序的快速内存管理器,以及可以在多线程下使用,不容易产生内存碎片,并且无需使用外部DLL文件就可以支持共享内存。

使用方法:
1.对IDE加速
    解压之后,文件夹".../FastMM/Replacement BorlndMM DLL/Delphi/Precompiled/for Delphi IDE/Performance"下的"BorlndMM.dll"拷贝到Delphi安装目录下的".../Borland/Delphi7/Bin"进行覆盖安装(最好先备份下)。
2.对应用程序加速
    打开Delphi IDE,将文件夹".../FastMM"添加到"Environment Options"下的"Library"中。然后再在具体项目工程中,在菜单栏→"Project"→"View Source"下,将"FastMM4.pas"单元添加到"uses"下的第一个位置。若需要内存报告消息为中文的话,将文件".../FastMM/Translations/Chinese (Simplified)/FastMM4Messages.pas"替换文件".../FastMM/FastMM4Messages.pas"即可。

下面测试内存泄露报告:
1)新建一个Delphi应用程序,在工程文件将"FastMM4.pas"单元添加到"uses"下的第一个位置;
2)添加一个按钮,按钮单击事件如下:

1
2
3
4
5
6
procedure TForm1.btn1Click(Sender: TObject); 
var 
  sl: TStrings; 
begin 
  sl := TStringList.Create; 
end; 

3)运行程序,单击按钮,退出程序,观察结果如下图所示:

     从上面可以看到有报告内存泄露,并且提示TStringList.泄露,提醒要得到详细的内存泄露信息,需开启"FullDebugMode"和"LogMemoryLeakDetailToFile"条件编译开关。打开文件".../FastMM/FastMM4Options.inc",在文件末尾添加以下代码:

{快速配置发布版本和调试版本} 
{$ifdef Release} 
  {发布版本请设置} 
  {$undef FullDebugMode} 
  {$undef CheckHeapForCorruption} 
  {$define ASMVersion} 
  {$undef EnableMemoryLeakReporting} 
  {$undef UseOutputDebugString} 
{$else} 
  {调试版本请设置} 
  {$define FullDebugMode} 
  {$define EnableMemoryLeakReporting} 
  {$define UseOutputDebugString} 
{$endif} 

再将文件".../FastMM/FullDebugMode DLL/Precompiled/FastMM_FullDebugMode.dll"拷贝到工程可执行程序目录下,运行程序,单击按钮,观察结果如下图所示:

在工程目录下有日志文件"Project1_MemoryManager_EventLog.txt"记录内存泄露详细信息,如下图所示:

若是发布版本的话,关闭调试模式,在菜单栏→"Project"→"Options"→"Directories/Conditionals"→"Conditionals"下,定义一个条件编译"Release",如下图所示:

再次运行程序,单击按钮,观察结果,已经无内存泄露报告提示框了。注意以上仅在IDE中调试程序有检查内存泄露,若是要在脱离IDE运行程序也检测内存泄露,请关闭选项  {$define RequireDebuggerPresenceForLeakReporting},此项默认开启。


FastCode为Delphi社区提供高度优化的函数,此函数比Delphi运行时库函数、VCL函数以及它们的扩展函数更快。FastMove替换所有的system.move调用,因为它有更快的速度。

使用方法:
    解压之后,将FastMove放到FastCode文件夹下,这样就只需引用一个环境路径,将".../FastCode"添加到"Environment Options"下的"Library"中。然后再在具体项目工程中,在菜单栏→"Project"→"View Source"下,将"FastCode.pas"和"FastMove.pas"单元添加到"uses"下的第一个位置,如下所示:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
program Project1; 
 
uses 
  FastMM4,     {假如有FastMM的话,放在第一个位置} 
  FastCode, 
  FastMove, 
  Forms, 
  Unit1 in 'Unit1.pas' {Form1}; 
 
{$R *.res} 
 
begin 
  Application.Initialize; 
  Application.CreateForm(TForm1, Form1); 
  Application.Run; 
end. 

若是FastMM和FastMove同时使用的话,需要禁用其中一个条件编译,打开文件".../FastMM/FastMM4Options.inc",按Ctrl+F寻找字符串"$define UseCustomVariableSizeMoveRoutines",找到之后将此行改为如下:

{.$define UseCustomVariableSizeMoveRoutines} 

使用FastMove代码可以使整个程序都使用到更快的内存移动函数而不仅仅是内存管理器。因此建议将FastMM和FastMove代码相结合,并关闭此选项。

FastMM、FastCode、FastMove打包下载:http://download.csdn.net/source/3337016

扩展资料:
1.Delphi中使用FastMM4结合View CPU避免内存泄漏 http://www.cnblogs.com/kongchao/archive/2009/10/27/1590479.html
2.FastMM使用详解 http://blog.csdn.net/shuaihj/archive/2011/03/17/6256723.aspx

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

FastMM FastCode FastMove的使用相关推荐

  1. Delphi7 内存管理及 FastMM 研究 (对于EXE和DLL内存共享很有用) .

    [转] Delphi7 内存管理及 FastMM 研究 (对于EXE和DLL内存共享很有用) 故国之晚秋 发表于2010-12-06 19:34 浏览(32) 评论(0) 分类: 我的日记       ...

  2. [转] Delphi7 内存管理及 FastMM 研究

    Delphi7 内存管理及 FastMM 研究[转] 作者:刘国辉 一.引言       FastMM 是适用于delphi的第三方内存管理器,在国外已经是大名鼎鼎,在国内也有许多人在使用或者希望使用 ...

  3. oracle oid查询 视图,OID View

    非正规方法处理AngulurJS模块管理问题 1.起因 自己一直做winform,有幸从某个大神手里接了一个node.js,express,angulurJS等集众多开源框架的一个项目,赶鸭子上架,于 ...

  4. 我常去的编程技术网站[最近更新:2010.09.29]

    [序言]  其实大家都可以成为一个厉害的软件开发人员,希望大家通过了解我提供的这些网站找到自己的兴趣爱好,以增强自己的信心. [建议]  为了能让更多的朋友看到此链接,如果大家是csdn用户,那么请选 ...

  5. Delphi 汇编学习(八)--- 图像水平镜像垂直镜像的极致优化

    一:水平镜像/翻转        将一幅图像水平镜像/翻转,代码很简单,就一行代码: procedure HorizMirror(bmp: TBitmap); beginbmp.Canvas.Copy ...

  6. delphi 控件大全(确实很全)

    delphi 控件查询:Torry's Delphi Pages http://www.jrsoftware.org Tb97 最有名的工具条(ToolBar)控件库,仿Office97,如TDoCk ...

  7. delphi 控件大全

    delphi 控件查询:http://www.torry.net/ http://www.jrsoftware.org Tb97 最有名的工具条(ToolBar)控件库,仿Office97,如TDoC ...

  8. Windows平台三大软件开发工具Delphi、WPF .NET Framework和Electron开发对比综述

    Embarcadero委托白皮书研究了Delphi,WPF .NET Framework和Electron之间用于构建Windows桌面应用程序的区别.由三个Delphi最有价值专家(MVP)志愿者, ...

  9. Delphi优秀免费资源

    1.FastMM     主页:http://fastmm.sf.net Delphi 2006 中一个重要的更新就是使用开源内存管理器 FastMM 替调了使用了 N 年的老内存 管理器. Fast ...

最新文章

  1. VCL 中的 Windows API 函数(6): BeginDeferWindowPos
  2. Windown Server 2003
  3. 【数理知识】《数值分析》李庆扬老师-第6章-解线性方程组的迭代法
  4. PAT甲级1006 Sign In and Sign Out:[C++题解]字符串处理
  5. textureview 缩放_用MediaPlayer+TextureView封装一个完美实现全屏、小窗口的视频播放器...
  6. web app会遇到那些问题
  7. Ant Design Pro+Electron+electron-builder实现React应用脱离浏览器,桌面安装运行
  8. java.lang.NoSuchMethodError: org.apache.flink.table.api.TableColumn.isGenerated()Z
  9. mfc mysql 选择删除文件_MFC应用实例:[60]删除指定类型的文件
  10. 雅虎JavaScript架构师:网页开发技术安全优先
  11. dubbo k8s 服务发现_记一次dubbo服务发现导致的OOM
  12. JavaScript培训
  13. 日志易数据接入之 Syslog 日志上传
  14. java制作仿win7计算器之二完结篇
  15. Tomcat8.5后版本不返回200 OK的问题解决
  16. 导致无线网卡连接不上wifi的几种原因|为什么无线网卡连不上wifi?
  17. 线性代数计算器C语言(1)——计算行列式值
  18. 今日头条自媒体搬运原创视频批量去水印消重包推荐0基础教程如何快速找素材进行伪原创-自媒体爆文之如...
  19. 关闭Linux防火墙
  20. 步进电机控制器的设计

热门文章

  1. Consul架构介绍
  2. Kubernetes如何赋能可再生能源产业提升10倍效率
  3. C语言,利用条件语句判断是否为三角形并输出面积
  4. TCP三次握手抓包观察实战篇
  5. docker host and docker container
  6. css 网格布局_CSS网格布局
  7. 音速索尼克 怪人_如何使用AI玩刺猬索尼克。 真干净!
  8. 创建react应用程序_如何将React应用程序部署到Netlify
  9. 2020计算机科学第五轮评估,2019-2020全国计算机专业大学排名
  10. 字典按照值或键进行排序