|
盒子资源分类 |
![]() |
|
|
|
Borland Delphi 7 FastMM RTL 补丁 |
![]() |
关键字:Delphi7 FastMM RTL 补丁 内存管理器 |
来 自:原创 |
平 台:Win9x,Win2k/XP/NT,Win2003 |
下载所需:0 火柴 |
深浅度:中级 |
完成时间:2006/3/6 |
发布者:Lsuper@DelphiBBS |
发布时间:2006/3/7 |
编辑器:DELPHI7 |
语 种:简体中文 |
分 类:开发 |
下载浏览:1068/14679 |
|
|
|
|
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! |
![]() |
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们! |
相关文章 |
|
![]() |
|
相关评论 |
![]() |
共有评论16条
当前显示最后6条评论
|
fanwy_2003 |
2006/3/10 17:41:55 |
需要將整個vcl重新編譯一邊 |
limin |
2006/3/11 10:08:10 |
确实不错,用了就是不一样。 |
lsuper |
2006/3/14 19:42:09 |
谁说需要“将整个 VCL 重新编译一次”? n_n ... 使用这个 patch:rtl\replace.bat 不使用这个 patch:backup\restore.bat that's all ... |
wdsh643 |
2006/3/16 10:18:35 |
在win98中使用这个补丁总是提示内在管理器不能被更改,无论是用delphi7开发程序时,还是发布的程序安装到win98上,都是提示出错。在其他系统上使用不存在出错。 |
lsuper |
2006/3/18 16:29:10 |
非常感谢反馈!98 的问题已经修改,重新发布 1.2 的了 ;> |
niker76 |
2006/3/19 7:28:17 |
我使用FastMM427测试的结果: AMD SP2500+ 512M: 使用原来 RTL 大概 9.1-9.3S 使用 FastMM 替换的 RTL 大约 5-5.3S |
我要发表评论 |
查看全部评论 |
|
|
|