不忘英语学习,坚持建站制作,听BEYOND音乐,感悟生活每一天!永久域名:G1981.cn
«F1--F12在电脑中的作用 你装什么系统?98、XP、VISTA—恋人、老婆、小秘»
2008-8-1电脑网络
RamDiskbcb编译速度
 views

用RamDisk怎样提高BCB的编译速度


用BCB(Borland C++ Builder)6.0编译一个三千万行代码级别的项目是什么一种感觉?对,你没看错,八位数,三千万。在我的双核笔记本上一般需要五到十分钟。最痛苦的一次竟然花费了将近半个小时的时间。这点时间足够你悠哉游哉去泡杯茶,静静地喝完,然后再把杯子洗好了。

这里所说的编译时间是指全新编译的时间,不是增量编译的时间。增量编译需要的时间少得多,不过你的运气并不总是那么好的。

网上流传的BCB的优化配置有不少,大多大同小异。如CSDN所载:

 9.1 C++Builder编译问题

【建议9-1-1】设置Project的Option,在Complier属性页,设置Per_complied   handers属性,将其设置为Use   Per_complied   handers,filename定义为自己的文件名,以避免默认文件在编译了多个程序之后的疯狂增大。

【建议9-1-2】设置Enviroment   Option,在Preferences属性页,设置Compling   and   running属性,选择Cache   handers   on   startup,使程序启动的时候就将预编译头文件加载到内存中。

【建议9-1-3】将常用的系统头文件定义到自定义的一个头文件里面,并将其加载到#pragma   hdrstop语句之前,使编译器将其预编译,加快编译速度。在此头文件里,可以加载一些自编写的,不经常变化(或者不变化)的头文件,以加快编译系统的编译速度。

但这只能治标,不能治本。

基于长期与BCB艰苦作战的经验,发现其编译时产生的临时文件对硬盘的读写要求较高。每次编译,硬盘灯就一直亮着。硬盘的读写速度很大程度上决定了编译速度。于是,使用RamDisk的想法自然应运而生。

所谓RamDisk,就是虚拟硬盘。简单讲,就是将内存划出一部分当作硬盘使。以前,内存不够的时候,使用虚拟内存(即划出一部分硬盘当作内存使)来增大系统资源。现在,内存便宜了,好的配置都是几个GB的内存,一般都用不了。于是,RamDisk就能发挥作用了。Ramdisk的速度特别快,大概是现在最快的7200转硬盘速度的30倍,特别适合存放临时文件或需要频繁读写的文件。

微软曾经写过一个RamDisk原型系统,并且开放了源代码。后来的许多产品都是借鉴或直接修改自该原型系统的。目前免费的RamDisk中Gavotte RamDisk是个不错的选择,它是基于微软原型系统的修改版,加装了GUI(图形界面),可以自定义RamDisk的大小、挂载类型、盘符等,配置起来很方便。Gavotte RamDisk可以支持XP和Vista,性能也比较稳定,试用了一下感觉不错。

  There are plenty of Ramdisk driver and software available, such as RamDisk9xME, RAMDiskXP, RAMDiskSE and RAMDiskVE from Cenatek, RamDisk and RamDisk Plus from SuperSpeed, RAMDisk Enterprise Lite and Full version plus 64 MB limited free RAMDiskbased on Microsoft Ramdisk below from QSoft, and Ramdisk.sys driver for Windows 2000 from Microsoft published under KB257405. However, most of these Ramdisk drivers either is not free, or limit in its functionality especially on the size on RAM-disk. Some not even support Windows Vista.

由于BT和Firefox已经使用了硬盘保护技术,个人认为没有必要对它们再使用RamDisk了。当然,还有其他一些应用,比如IE临时文件,解压缩文件等,这里不一一叙述。

回到本文主题。开辟一个256MB的RamDiak(更大也用不完了)。将BCB的临时文件$(BCB)\lib\vcl60.csm和编译临时文件Obj存放到RamDisk上,哇,编译速度显著提高,快了五到十倍。真是枯木又逢春呀!

RamDisk里的文件断电就会消失,所以不宜放重要的文件。简单起见,可以编写两个脚本。关机脚本将RamDisk中的文件复制到物理硬盘。开机脚本将物理硬盘中的文件复制到RamDisk。这样,两者就同步了。


参考文章:
BCB优化配置,CSDN:http://topic.csdn.net/t/20020730/18/911447.html
RamDisk及下载链接:http://www.mydigitallife.info/2007/05/27/free-ramdisk-for-windows-vista-xp-2000-and-2003-server/
 

日志信息»

该日志由 koma520 于 2008-8-1 20:39:39 发表,所属分类:电脑网络。欢迎您 发表评论,同时欢迎您在保留 源出处 与版权信息的基础上,引用 本日志。您还可以通过 Rss2.0 订阅本日志的所有评论。

相关日志»

什么是虚拟硬盘

评论(0)

发表评论»