CnPack Forum


 
Subject: delphi 2005象delphi 5一样快 0_0
asmcat2000
新警察
Rank: 1



UID 405
Digest Posts 0
Credits 7
Posts 7
点点分 7
Reading Access 10
Registered 2004-5-26
Location ah
Status Offline
Post at 2005-1-3 18:04  Profile | Blog | P.M. 
delphi 2005象delphi 5一样快 0_0

在紫金飞鸿看到二篇文章,
照章优化一下,
爽呆了,
delphi 2005,象delphi 5一样快......内存占用极小,速度极快。
--------------------------------------------------

Delphi 2005纯WIN32开发环境


  
不管 Borland 怎么去说, Delphi 2005 并不需要 .NET.

如果您是一位 Delphi Win32 开发者, 且不希望 Delphi 2005 被 .NET 所污染, 那么本
文可以教您如何从 Delphi 2005 中去除 .NET .

本文所述内容已在 Delphi 2005 设计师版测试通过. 我写了两个案例: 一个是针对全新
安装 Delphi 2005, 另一个是针对已经安装了 Delphi 2005 的情况.


下面是两个去除 .NET 的 Delphi 2005 安装方法, 第三个是一个附加的建议:

全新安装 Delphi 2005
从已安装的 Delphi 2005 掘弃
如何节省内存与加载时间
案例1. 全新安装 Delphi 2005. 步骤 1.
这里指导如何从 Delphi 2005 中去除 .NET 依赖:
步骤 1. 安装 Delphi 2005
当我们试图安装 D2005 (译注: 往后 Delphi 2005 简称 D2005), 安装程序将进行一连
串安装前必需条件的检查. 我将告诉您如何绕过该检查, 但首先我得做一个澄清: 安装
D2005 之前有两个东西还是必须得安装的:
.NET Framework (.Net 框架). 如果我们不安装它, D2005 将不能成功安装完成 (别担
心, 安装完 D2005 之后我们很快会卸载它). 因此我们得先安装它 (它位于 D2005 第一
张安装盘上: dotnetRedistdotnetfx.exe).
  
MS Help 2 engine (微软第2代帮助引擎). 这是 D2005 帮助系统所必需的. 遗憾的是,
它并不是一个独立的产品 (它被捆绑在其它产品中, 如 .NET Framework SDK, Visual
Studio.NET, 及 Office XP Developer). 所以我们得安装 .NET Framework SDK 的文档
部分(包含了 MS Help 2 engine). 我们现在安装它 (位于 D2005 第一张安装盘:
dotnetSDKsetup.exe). 记住, 仅需安装文档部分 (不要选中 "Development kit" 与
"Samples"). 一旦完成该安装, 我们就可以删除 100 MB 的 .NET 文档 (因为我们目的
只是要帮助引擎). 删除如下内容:
          Cocuments and SettingsAll UsersApplication DataMicrosoft
HelpMS.NETFrameworkSDK*.*
          Crogram FilesMicrosoft.NETSDKv1.1Docs*.*

下面让我们正式开始 Delphi 2005 的安装 ...

运行 D2005 安装程序 (位于 D2005 CD1: Installsetup.exe).
稍等片刻您将看到一个弹出的模式窗口, 说一些 "Borland Delphi 2005 requires
..." 之类的废话. 让我们干掉这个窗口:

打开 (Ctrl + Alt + Del) Windows 任务管理器. 您可以找到3个占用以下相似内存的进
程:

msiexec.exe ... 3,488 K
msiexec.exe ... 4,476 K
msiexec.exe ... 14,036 K

结束 4,476 KB 这个进程... 完美的胜利! 需求检查窗口已被去除, 我们可以继续安装
了!

继续. 您将被询问安装类型 (Complete 或 Custom). 选择Custom (自定义).

继续. 您将看到 3 个选项. 只选中 Win32:

[ ] Borland Delphi 2005 for the Microsoft .NET Framework
[X] Borland Delphi 2005 for Microsoft Win32
[ ] Borland C#Builder 2005 for the Microsoft .NET Framework

注意: 这存在一个普通性的bug在 Delphi 2005 , 就是如果您只选择安装 Win32 的话,
重构技术将不能被使用. 希望在十二月的补丁中可以修复该问题.

继续. 您将看到一个功能选择树. 选择您所需要的.

继续. 将询问您是否安装 Rave Reports. 如果您需要就安装它.

一旦安装结束, 卸载掉 .NET Framework, 因为我们不再需要它了.
注意: 这时还不要运行 Delphi 2005 . 它不会正常运行的. 如果您运行了它, D2005就
会创建默认的注册表值在 HKEY_CURRENT_USERSoftwareBorlandBDS3.0, 那么我们后
面的设置就会受到影响. 如果您已经运行到 D2005, 则需要打开注册表并删除
HKEY_CURRENT_USERSoftwareBorlandBDS3.0.
我们差不多完成了. 最后的步骤就是去除.Net 的关联. 请看下一步.


案例1. 全新安装 Delphi 2005. 步骤 2.
我们继续讨论如何从 Delphi 2005 去除 .Net 部分. 一旦 Delphi 2005 安装完成 (步
骤 1), 我们就将完全从电脑中去掉 .Net...

步骤 2. 去除 .NET 部分
可以这么说,  Delphi 2005 就是一个普通的 Win32 IDE (就像 Delphi 7), 只是在启动
时加载了一些与 .NET 相关的模块 (现在您该明白为什么它仍然非常快(去掉 .Net 后))
. 我敢打赌Borland不会承认这种说法, 在如今这个 ".NET 时代", 任何有关Win32的声
音都是在犯政治错误. ;-) 我们要得到纯Win32 IDE, 就得去掉这些 .NET 相关模块.

这些模块位位于注册表项 [HKEY_LOCAL_MACHINESoftwareBorlandBDS3.0Known
IDE Packages] 下面.

要禁用这些模块, 只需删除它的这些注册表数据.

.NET 需要的模块 (所以必须禁用)
[HKEY_LOCAL_MACHINESoftwareBorlandBDS3.0Known IDE Packages]
$(BDS)Bincaliberide90.bpl
$(BDS)Binsoapide90.bpl
$(BDS)Binasmview90.bpl
$(BDS)Bindbkdebugproide90.bpl
$(BDS)BinTGIDE90.BPL
$(BDS)Bincompro90.bpl

不是 .NET 需要的模块 (您也可以保留它们)
[HKEY_LOCAL_MACHINESoftwareBorlandBDS3.0Known IDE Packages]
$(BDS)Binvclmenudesigner90.bpl
$(BDS)Binwin32debugproide90.bpl
$(BDS)Binhtmide90.bpl
$(BDS)Biniteidew3290.bpl
$(BDS)BinSrcManIDE90.bpl
$(BDS)Bintodoide90.bpl
$(BDS)Binhtmlhelp290.bpl
$(BDS)Binidefilefilters90.bpl
$(BDS)Binstartpageide90.bpl
$(BDS)Binrefactoride90.bpl
$(BDS)Bindbkdebugide90.bpl
$(BDS)Binexceptiondiag90.bpl
$(BDS)bindeployide90.bpl
$(BDS)Binplugview90.bpl
$(BDS)Bincoreproide90.bpl
$(BDS)BinIDETools90.bpl
$(BDS)Binunittestide90.bpl
$(BDS)Binhistoryide90.bpl
$(BDS)Binhtmltidy90.bpl
$(BDS)BinHTMLFmt90.bpl
$(BDS)Binmlcc90.bpl
$(BDS)Bindelphivclide90.bpl
$(BDS)Bindelphicoreproide90.bpl
$(BDS)Binwin32debugide90.bpl
$(BDS)Binhtmlide90.bpl
$(BDS)Bindelphide90.bpl
$(BDS)Bincomstd90.bpl
$(BDS)Binmtspro90.bpl
$(BDS)Bindelphipro90.bpl
$(BDS)Binmtsent90.bpl

以上这些不是 .NET 所需的模块, 您没有必要全部保留它们. 在我的计算机上, 我只保
留了以下几个模块:

[HKEY_LOCAL_MACHINESoftwareBorlandBDS3.0Known IDE Packages]
$(BDS)Bincoreproide90.bpl
$(BDS)Bindelphide90.bpl
$(BDS)Bindelphivclide90.bpl
$(BDS)Binhtmlhelp290.bpl
$(BDS)Bintodoide90.bpl
$(BDS)Binvclmenudesigner90.bpl
$(BDS)Binwin32debugide90.bpl
$(BDS)Binwin32debugproide90.bpl


步骤 3. 恭喜.
恭喜!! 您又重新成为了一个快乐的 Win32 开发者!!



案例 2. 从已安装的 Delphi 2005 中掘弃
如果您已经安装了 Delphi 2005, 而您又非常非常的不想要 .Net, 下面内容教您如何
"解放" Delphi:

卸载 .NET Framework,  .NET Framework SDK, 以及 Visual J# .NET
Redistributable.
打开注册表并删除 HKEY_CURRENT_USERSoftwareBorlandBDS3.0 分支.
执行案例1的步骤2.
注意: 一旦您完成了去除 .Net 的安装工作, 下面的内容可以指导您如何使 D2005 加载
时更快, 且节省内存:



如何节省内存与加载时间
一旦您从 Delphi 2005 去除了 .NET 部分, 您可以加快 D2005 的运行速度.

为实现更深层次的优化, 我建议您停用您并不使用的设计时包 (这也 .NET 无关, 但可
以很好的节省内存与加载时间):

运行 Delphi 2005 并点击菜单 Component->Install Packages...
取消选择您从不使用的包. 我习惯只保留 "Borland Standard Components",
"Borland Database Components" 及其它少许包.
选中 Default 复选框并点击 OK.
---------------------------------------------------------------------------------------

加速 Delphi 2005 for win32


看下面的文字之前,确定你已经装了Delphi 2005的Update 1了

        -r参数对D2005也适用
        简单地说,就是bds.exe -rfeuvan,然后运行一遍退出
        (bds.exe在哪里请自己找)
        这样将在注册表生成一个HKCU-SOFTWARE-Borland-feuvan
        分支的内容将是从HKLM-SOFTWARE-Borland-BDS复制的
        然后你可以根据自己的需求改变HKCU-SOFTWARE-Borland-feuvan的内容
        设置一个适合自己的Delphi2005,是不是很cool,呵呵

        比方说,我们就可以有bds.exe -rwin32和bds.exe -rdotnet。;-)
        它们用不同的注册表分支,然而展现在你面前的会是两个截然不同的界面
        当然,它们本质上都是bds.exe

        HKCU-SOFTWARE-Borland-feuvan-3.0-Known IDE Packages里,
        我保留了如下的键值(一个注册表文件,自己改改然后用好了)
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USERSoftwareBorlandfeuvan3.0Known IDE Packages]
"$(BDS)Binvclmenudesigner90.bpl"="(Untitled)"
"$(BDS)Binwin32debugproide90.bpl"="(Untitled)"
"$(BDS)Bin        odoide90.bpl"="Borland ToDo"
"$(BDS)Binhtmlhelp290.bpl"="Borland HtmlHelp Viewer"
"$(BDS)Bincoreproide90.bpl"="Core IDE Pro Package"
"$(BDS)Bindelphivclide90.bpl"="Delphi VCL Designer IDE Package"
"$(BDS)Binwin32debugide90.bpl"="(Untitled)"
"$(BDS)Bindelphide90.bpl"="Delphi Win32 IDE Personality"
"$(BDS)Binmlcc90.bpl"="Markup Language Code Completion Package"
"$(BDS)Biniteidew3290.bpl"="Borland Integrated Translation Environment for Win32"
"$(BDS)Bin
efactoride90.bpl"="Borland Core Refactoring Package"
"$(BDS)Binplugview90.bpl"="Pluggable Tree View Package"
"$(BDS)BinIDETools90.bpl"="Build Tools"

        我发现这样的组合足以写win32/vcl,而且退出的时候,不会有xxx出错,然后一个zombie process留在进程里,或者是不断报错。说实话,即使打了Update1之后,2005仍然给人buggy的感觉。
        启动Delphi2005,在Component-Install Packages,在弹出的新窗口中,把所有你不需要的Design Packages前的勾去掉。我就留了Borland Standard Component和Indy 10。
        现在启动Delphi 2005只需要两秒,而且没有rtl90.bpl出错,bds.exe内存访问出错这样烦人的bug了。
        至于.Net Application,我想我到要写的时候还是开VS2003好了。

        btw,召唤一下集成Update1的Delphi2005,装Update1居然要原来的cd,ft,而且它放出的update1里解出来的xxxxxx.msp居然不支持administrator installation。
--------------------------------------------------------------------------------

希望不要怪我帖与cnvcl专家包无关的帖子,我欣赏cnvcl,喜欢在这里交流。
Top
zjy
管理员
Rank: 9Rank: 9Rank: 9



UID 2
Digest Posts 6
Credits 2385
Posts 1543
点点分 2385
Reading Access 102
Registered 2002-12-16
Location China
Status Offline
Post at 2005-1-4 13:52  Profile | Site | Blog | P.M. 
好文章!

我原来也试过在注册表里删除一些不必要的BPL,把D9加速到D7的水平,不过没想到还有个 -r 参数可以选择启动时用的注册表项,呵呵,这下方便了。

这样的文章多多益善:)




Zhou JingYu
CnPack Administrator
http://www.cnpack.org/
Top
rocky
普通灌水员
Rank: 2



UID 584
Digest Posts 0
Credits 60
Posts 56
点点分 60
Reading Access 10
Registered 2004-11-28
Location 天府之国
Status Offline
Post at 2005-1-4 19:24  Profile | Blog | P.M. 
收藏了,试试看:)
Top
coaco
新警察
Rank: 1



UID 17
Digest Posts 0
Credits 39
Posts 30
点点分 39
Reading Access 10
Registered 2003-1-31
Status Offline
Post at 2005-1-9 16:36  Profile | Blog | P.M. 
其实Borland对原生代码的支持更贴心就可以了,比如可以有一个组合选项,哎,宝兰.
Top
 




All times are GMT++8, the time now is 2024-12-11 07:54

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.0.0  © 2001-2006 Comsenz Inc.
Processed in 0.011845 second(s), 9 queries , Gzip enabled

Clear Cookies - Contact Us - CnPack Website - Archiver - WAP