L
LSUPER
Unregistered / Unconfirmed
GUEST, unregistred user!
Borland Delphi 7 FastMM RTL 补丁:
---------------------------------
=^0^=
发布者:
-------
Lsuper @ DelphiBBS
任何问题,欢迎到 DelphiBBS 提出 ...
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3373649
说明:
-----
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、修改 Move、FillChar 为 Delphi 2006 的 System.pas 中的实现
4、所有操作在中文版 Windows XP sp2 + Delphi 7 下完全测试通过
使用:
-----
1、运行 RTL/Make.bat,编译出 Dcu 文件
2、运行 RELEASE/Copy.bat,他会复制文件到相应文件夹
3、如果想恢复原始文件,运行 BACKUP/Restore.bat
注意:如果你的 Delphi 没有安装在默认路径(C:/Program Files/Borland/Delphi7),请修改 bat 中相应的路径
文件:
-----
RTL 文件夹 Delphi 7 RTL 替换文件
BACKUP 文件夹 Delphi 7 RTL 备份文件
DEMO 文件夹 一个测试例子。注意:例子中在 Dll 和 Exe 之间传递 string 而不需要引用任何的 ShareMem 或 FastMM!
---------------------------------
=^0^=
发布者:
-------
Lsuper @ DelphiBBS
任何问题,欢迎到 DelphiBBS 提出 ...
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3373649
说明:
-----
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、修改 Move、FillChar 为 Delphi 2006 的 System.pas 中的实现
4、所有操作在中文版 Windows XP sp2 + Delphi 7 下完全测试通过
使用:
-----
1、运行 RTL/Make.bat,编译出 Dcu 文件
2、运行 RELEASE/Copy.bat,他会复制文件到相应文件夹
3、如果想恢复原始文件,运行 BACKUP/Restore.bat
注意:如果你的 Delphi 没有安装在默认路径(C:/Program Files/Borland/Delphi7),请修改 bat 中相应的路径
文件:
-----
RTL 文件夹 Delphi 7 RTL 替换文件
BACKUP 文件夹 Delphi 7 RTL 备份文件
DEMO 文件夹 一个测试例子。注意:例子中在 Dll 和 Exe 之间传递 string 而不需要引用任何的 ShareMem 或 FastMM!