追求BCB6编译速度之极限(探索篇)

srxumin 2003-10-17 03:51:17
本人用BCB才半年之久,所以一开始根本没考虑到BCB在做大工程的时候,如果不加优化,到后面会使你的系统变得那么慢。我的工程有62个窗体,集成在一个EXE文件之中,每当我按下RUN的时候,本人就会到CSDN来逛一次,每当按下Builder All Project的时候,本人就会去听一首MP3,如果将这些概念数字化,我当时用的平台是:杂牌815主板+C850CPU+SDRAM现代512M内存+金钻5400转40G硬盘+Windows 2003
Server+BCB6,全编译一次是1180秒。
我的C友们,要知道这时你再添加一个窗体,就要再经历一次这种磨难,所以,还想什么?我们升级吧!
于是,我拿出这个月的私房钱,猛下狠心,将系统升成了七彩虹845D主板+Inter P4 1.7G+三星DDR266 256M+金钻5400转40G硬盘(硬盘不变,暂时没钱)。
Builder All了一次,发现系统乖乖地从1180秒跳到690秒,在预料之中,花了钱,没什么值得高兴的。
C友们,这就能满足我强烈的速度欲吗?大家都知道BCB6是在Win 2000下开发的,不用多说,它在Win 2000下的表现应该是最出色的,但是有有资料反映XP实际上是2000的优化版,重装2000系统,会不会反而降低性能?
不管了,抱着试一试的态度玩玩,反正不用花钱……装完Windos 2000->装好最新的主板驱动->安装最新的INTER芯片组驱动程序->安装显卡驱动->安装BCB6和第三方组件……
结果出来了,编译从690秒跳到了220秒。什么?不信?这时我的心情就跟杨利伟乘神舟5号上太空的思想没什么两样,也没时间跟你讨论信不信的事了,经过多次重装系统证明:上帝是不会开玩笑的,去做一次你就相信了。
但这一美餐没有维持太久,随着我安装应用程序的增加,硬盘中有30G数据时,编译从220秒回到了375秒。可怜啊,又回到秋天了,但没有刚才的冬天那么冷。
人类就是因为有欲望才会进步。有资料记载,AMD CPU要比INTER CPU在科学计算上更优秀。于是我照样拿着我的测试代码和这“笨重”的BCB6到我表弟的AMD2000+上去测试。测试结果???别提了,反正我保证这块CPU的口味要比麦当老的烤鸡香。(只对程序员而言,对美女则恰恰相反)
不要高兴太早,此时你不要忘记你自己的CPU还是INTER的,提升速度,你还得另找途径。倒霉的内存又成了我下一个试验目标。进入CMOS,将内存为3的参数全改成了2,另外还调了几个参数,记得不是很清楚了,有兴趣的朋友,可以通过QQ与和E-Mail与我联系。这次编译速度大约只提高到315秒,也是笔者在写这篇文章时的速度。
话多不是我们男人的本色,以下是本人对C友们提升速度的一些建议。个人观点,仅供参考,请C友们谨慎决择。本方法只争对BCB6的编译速度。
一、入CMOS修改内存参数,提升5%-10%速度。
二、CPU超频,提升5%-30%的速度。(有危险,请谨用)
三、将不相干的程序分模块编译成DLL,提升的速度和你的编程水平成正比。(强烈推荐使用,初学者谨用)
四、安装Windows 2000 PRO版操作系统,提升40%-80%的速度。SERVER版提升30%-60%速度。98下用BCB6容易出错,不推荐使用。
五、安装Inter芯片组驱动,提升2%-5%速度。
六、815以上主板,安装Inter芯片组加速程序,提升5%-20%速度。
七、内存高于256M以后对系统的影响占5%-10%
八、硬盘占10%
九、主板占20%
十、CPU的影响占系统的50%
十一、尽量不要修改.h头文件里的内容,容易引起大量文件编译。
十二、增删窗体会引起系统全编译。
十三、在linker页里:取消use dynamic RTL的选项,在packages页里:取消build with runtime packages的选项。可提升10%速度,但不利于调试代码。

声明:建议用辩证的角度看待本文章,不要太相信这些数字,所有的数字都未经多次测试的,未经多次试验。如果您的机器出现过载或冒烟现象,本人概不负责。如您对BCB6的速度提升还有什么好的意见和建议,请发E-Mail给我:srxumin@163.com,QQ:66087125,还请多多指教。
...全文
75 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
srxumin 2003-10-19
  • 打赏
  • 举报
回复
PPower(月亮光光,照地堂) 的方法真好,真是后悔怎么不早点认识你?呵呵
ThinkX 2003-10-18
  • 打赏
  • 举报
回复
虽然你解决了问题,但是并不是每个人都这么做的。
如果优化好程序,并且优化预编译,估计就可以快一倍。
勉励前行 2003-10-18
  • 打赏
  • 举报
回复
對於使用很多單元的項目,有個簡單的方法:
unit1.cpp unit1.h ,Form1 ..
unit2.cpp unit2.h ,Form2 ..
....
unitX.cpp unitX.h ,FormX ..
對於這樣多個單元:
Preject 1 :
unit1.cpp
unit2.cpp...
Preject 2 :
unit3.cpp
unit4.cpp...
這樣分開編譯調試,如果Preject 2 中要用到Preject 1 中的Unit1單元.
那麼可這樣做:
#include unit1.h
#pragma link "unit1"
請不要再把unit1加入到Preject 2 中去再無謂地編譯一次。

我的用了N個單元的主控模塊是用這種方式寫的,編譯速度不慢呀。各個模塊因為單元不多,編譯也不慢。但如果把所有單元都加在一塊編譯,真是慢死了。
另外,寫成DLL也是一種高效的方式。

十一、尽量不要修改.h头文件里的内容,容易引起大量文件编译。
我對這條有意見,我認為:如果需要,請務必優先考慮修改.h文件。
cupidvenus 2003-10-18
  • 打赏
  • 举报
回复
我怀疑是否有必要把所有窗体都包含在意个Exe文件中。
jekeylove 2003-10-18
  • 打赏
  • 举报
回复
Very Good!写的很好啊!收藏!!!
logical 2003-10-18
  • 打赏
  • 举报
回复
“我的工程有62个窗体,集成在一个EXE文件之中”?
如其与自己的钱过不去,还不如花些时间把这个工程分成10个工程。
yjy1001 2003-10-18
  • 打赏
  • 举报
回复
如其与自己的钱过不去,还不如花些时间把这个工程分成多个工程。
分快编译调试 都要容易得多……
如果便宜上300秒 我可能要神经崩溃了
何况还是1000多秒?! 受不了

但还是谢谢了
zldjp 2003-10-17
  • 打赏
  • 举报
回复
收藏
srxumin 2003-10-17
  • 打赏
  • 举报
回复
软件超频可比硬件要来得快得多,上次就看到GOOGLE改变算法,使搜索速度提高1000倍。我想硬件发展再快,也很难翻出这种倍数吧?
aliker 2003-10-17
  • 打赏
  • 举报
回复
硬件在超频,软件也要超频啊!呵呵!
jiangchun_xn 2003-10-17
  • 打赏
  • 举报
回复
。。。。无语,硬件发烧友。。。

不过还是谢谢
commandos 2003-10-17
  • 打赏
  • 举报
回复
呵呵换一块好硬盘 ,7200转的 ,会更快。。
TopCat 2003-10-17
  • 打赏
  • 举报
回复
提升硬件档次始终不是正道啊……

推荐楼主去看一本书:《大规模C++程序设计》(《Large-Scale C++ Software Design》,不知道为什么把Software翻译成“程序”,试图降低难度?)

书的内容有点老了(作者居然还用的是CFront 3.0编译器 -_-# ),不过里面的理论我感觉一点都不老,而且看了这个书你就会觉得在一些地方用上设计模式是非常理所当然的事情。他里面充分讨论了软件的物理设计,而减少编译时间就是优秀物理设计的好处之一。

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧