|
盒子资源分类 |
|
|
|
|
Borland Delphi 7 FastMM RTL 补丁 v1.1 |
|
关键字:Delphi7 FastMM RTL 补丁 内存管理器 |
来 自:原创 |
平 台:Win9x,Win2k/XP/NT,Win2003 |
下载所需:0 火柴 |
深浅度:中级 |
完成时间:2006/3/12 |
发布者:Lsuper |
发布时间:2006/3/12 |
编辑器:DELPHI7 |
语 种:简体中文 |
分 类:开发 |
下载浏览:1226/14285 |
|
|
|
|
Borland Delphi 7 FastMM RTL 补丁: ----------
任何问题,欢迎到 DelphiBBS 提出 ...
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3373649
版本: ----- 2006.03.12 v1.1
历史: ----- 2006.03.12 v1.1
1、修正 Exe 和 Dll 之间没有共享内存管理器的问题(Delphi 2006 是通过第一个引用 SimpleShareMem.pas 单元实现的)。 2、测试例子中加入内存检测选项(注意,例子是只在 Delphi IDE 下提示内存泄漏,独立运行没有提示)
2006.03.06 v1.0
1、首次发布
说明: -----
Delphi 2006 中一个重要的更新就是使用开源内存管理器 FastMM 替调了使用了 N 年的老内存管理器。
FastMM 在外国 Delphi 社区非常有名,其主要目的就是重新实现一个高效、安全、稳定的内存管理器(Borland 的内存管理器问题多多,如 Dll 和 Exe 间无法共享,多线程下效率底--一些情况下甚至于低一个数量级!),在代号为 Dexter 的 Delphi 2006 没 release 之前已经听李维大肆鼓吹说 Dexter 如何出色,还在 CSDN 上说他 Demo 证明 FastMM 在 Delphi 和 BCB 下能提高 NNN% 的效率!
FastMM 的主页:
http://fastmm.sourceforge.net
相对旧内存管理器,FastMM 有诸多的优点:
1、彻底实现了 Borland 的内存管理器,可以完全取代现有的内存管理器(“取代”就是第一个 uses FastMM4,that is all ...) 2、实现了内存管理器共享机制,Exe 和 Dll 间共享内存管理器不需要任何 Dll 支持 3、集成了内存泄漏检测功能 4、充分兼容现有的代码、Delphi 旧内存管理器模式 5、为了加速 Delphi IDE(如 Delphi 5/6/7、Delphi 2005)的启动速度、管理内存占用等,他提供了 BorlndMM.dll 的替代,直接替换 Bin 中的 Dll 即可!
如果想在 Delphi 7 下使用,最最简单的方法当然是在 dpr 中第一个 uses FastMM4
既然在 Delphi 2006 中的内存管理器如此之棒,一个非常自然的想法:能不能把 Delphi 2006 中的新内存管理器完全移植到 Delphi 7 下?
修改: -----
通过 UltraEdit 和 WinMerge 等大量搜索、对比 Delphi 7(Version 7 Build 8.1) 和 Delphi 2006(Version 10.0.2166.28377),发现其实移植的工作量没有想象中的复杂 :>
主要有:修改 System.pas 中的内存管理函数;GetMem.inc 的完全替代!附带的,由于 Delphi 2006 中的 Move 和 FillChar 函数使用的是开源 FastCode 更具效率的实现,“顺手牵羊”了一把 n_n ...
1、使用 Delphi 7(Version 7 Build 8.1)的 System.pas 作为原本
2、使用的内存管理器完全替换为 Delphi 2006 的内存管理器(GetMem.inc/System.pas)
3、加入内存管理器共享
4、修改 Move、FillChar 为 Delphi 2006 的 System.pas 中的实现
5、所有操作在中文版 Windows XP sp2 + Delphi 7 下完全测试通过
使用: -----
1、运行 RTL\Replace.bat,会编译出所有的 Dcu 文件,并复制到相应文件夹
2、如果想恢复原始文件,运行 BACKUP\Restore.bat
3、最后发布的 Dll 和 Exe 不需要附带额外的 borlandMM.dll
注意:如果你的 Delphi 没有安装在默认路径(C:\Program Files\Borland\Delphi7),请修改 bat 中相应的路径
文件: -----
RTL 文件夹 Delphi 7 RTL 替换文件 BACKUP 文件夹 Delphi 7 RTL 备份文件 DEMO 文件夹 一个测试例子
注意:例子中在 Dll 和 Exe 之间传递 string 而不需要引用任何的 ShareMem 或 FastMM 或 SimpleShareMem! |
|
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们! |
相关文章 |
|
|
|
相关评论 |
|
|
|
|