K kanny Unregistered / Unconfirmed GUEST, unregistred user! 1999-01-14 #1 据资料介绍,DELPHI的编译器是最快的,我用DELPHI开发了一个应用程序,在 进入程序时却需要相当长的时间,不知何故?
A Another_eYes Unregistered / Unconfirmed GUEST, unregistred user! 1999-01-14 #2 看来是你程序初始化中的问题。 是不是用到了很多数据库控件, 并且active属性都为true? 这样初始化时需要打开很多数据库,一般慢就慢在这上面
J jiangtao Unregistered / Unconfirmed GUEST, unregistred user! 1999-01-14 #3 编译器最快,并不等于程序运行快! 只是Pascal的编译连接比 C++快(因为它严格的语法要求)
A Another_eYes Unregistered / Unconfirmed GUEST, unregistred user! 1999-01-14 #4 不过delphi生成的程序运行也算快的,inprise有那么多编译器开发经验,它产生的代码 优化性能是最好的了。
H huizhang Unregistered / Unconfirmed GUEST, unregistred user! 1999-01-14 #5 Delphi的编译器是最快的这是不可否认的, 但是Delphi编译的程序运行并不块(当然 与VB比起来还是块的多, 比Borland的C++ Builder快一点, 比Borland C++和MS VC++的Exe慢了不少). Delphi编译快的诀窍在于那些已经编译过了的dcu文件不需要再次编译, 只是把他们 link起来就是一个Exe. 至于优化吗, 不敢说没优化, 至少dcu代码是优化过了的. Delphi追求的是快速开发, 并不是最快的运行程序. 熟话说"有得必有失". 尽管运行速度慢一点, 但是Delphi作为开发工具还是比任何其他的开发工具都好. 希 望Inprise在代码优化上在花点功夫, 那样的话就更完美了!
Delphi的编译器是最快的这是不可否认的, 但是Delphi编译的程序运行并不块(当然 与VB比起来还是块的多, 比Borland的C++ Builder快一点, 比Borland C++和MS VC++的Exe慢了不少). Delphi编译快的诀窍在于那些已经编译过了的dcu文件不需要再次编译, 只是把他们 link起来就是一个Exe. 至于优化吗, 不敢说没优化, 至少dcu代码是优化过了的. Delphi追求的是快速开发, 并不是最快的运行程序. 熟话说"有得必有失". 尽管运行速度慢一点, 但是Delphi作为开发工具还是比任何其他的开发工具都好. 希 望Inprise在代码优化上在花点功夫, 那样的话就更完美了!
D DNChen Unregistered / Unconfirmed GUEST, unregistred user! 1999-01-14 #6 电子与电脑里的评测文章(付测试程序原码)的结果是Delphi程序跑的最快。 可是我也遇到过高人,把个极小的程序写的和VB一个效率,问他原因,告诉我是form开太多,可是我的程序form比他多一倍,照样比他快多了,而我也没有做任何的优化,实在是佩服这位仁兄。 题外话,哈哈哈
电子与电脑里的评测文章(付测试程序原码)的结果是Delphi程序跑的最快。 可是我也遇到过高人,把个极小的程序写的和VB一个效率,问他原因,告诉我是form开太多,可是我的程序form比他多一倍,照样比他快多了,而我也没有做任何的优化,实在是佩服这位仁兄。 题外话,哈哈哈
D delphi fan2 Unregistered / Unconfirmed GUEST, unregistred user! 1999-01-14 #7 delphi编译器快,主要是因为它不支持多重继承和使用Dcu文件! 你的程序是由于加载慢,看来你使用了较多的窗体或元件! 使用启动窗体来消除寂寞吧,象Word!
3 3h Unregistered / Unconfirmed GUEST, unregistred user! 1999-01-14 #8 我看是你程序设计的算法问题. 可能在你的窗口建立(form.create)时你写了大量的代码,而这些代码由于要 完成大量的工作,或者是工信息量虽不多但你的算法极差极,就会造成窗口装 入前要花费大量的时间来完成这些工作. 因为要显示一个窗口是需要这个过程全部完成才行的. 检查一个两个过程: Form.Show, Form.Create. 尽量优化你的代码,才是问题的症结. 给分吧兄弟.
我看是你程序设计的算法问题. 可能在你的窗口建立(form.create)时你写了大量的代码,而这些代码由于要 完成大量的工作,或者是工信息量虽不多但你的算法极差极,就会造成窗口装 入前要花费大量的时间来完成这些工作. 因为要显示一个窗口是需要这个过程全部完成才行的. 检查一个两个过程: Form.Show, Form.Create. 尽量优化你的代码,才是问题的症结. 给分吧兄弟.
C chenke Unregistered / Unconfirmed GUEST, unregistred user! 1999-01-14 #9 第一次编译慢,第二次就快多了。 进入程序是指启动你的Exe文件还是Delphi? 如果是启动你的Exe文件慢的话,用<a href=ftp://210.79.245.4/incoming/chenke/aspack.exe>aspack.exe</a>压缩可使程序字节压缩到%50左右, 从而快速载入程序。
第一次编译慢,第二次就快多了。 进入程序是指启动你的Exe文件还是Delphi? 如果是启动你的Exe文件慢的话,用<a href=ftp://210.79.245.4/incoming/chenke/aspack.exe>aspack.exe</a>压缩可使程序字节压缩到%50左右, 从而快速载入程序。
S SeaSky Unregistered / Unconfirmed GUEST, unregistred user! 1999-01-14 #10 我想你的Form一定很多, 并且程序启动后便一个个, 迫不及待地 create起来了, 要学会动态加载form.
B bluebird Unregistered / Unconfirmed GUEST, unregistred user! 1999-01-14 #11 很多控件都可以自动创建的呀。(而且编译快并不代表运行快。不过,这个编译器之间差别到不是主要的。)如果你有很多初始化工作都自动完成,那一定无法控制应用程序的启动速度。 比如FORM创建和数据库的打开,OLE的连接等都是比较耗时的。解决的办法前边已经有叙述。FORM多的情况下可以手动创建的。数据库可以用到时再打开。OLE也是这样。
很多控件都可以自动创建的呀。(而且编译快并不代表运行快。不过,这个编译器之间差别到不是主要的。)如果你有很多初始化工作都自动完成,那一定无法控制应用程序的启动速度。 比如FORM创建和数据库的打开,OLE的连接等都是比较耗时的。解决的办法前边已经有叙述。FORM多的情况下可以手动创建的。数据库可以用到时再打开。OLE也是这样。
唐 唐晓锋 Unregistered / Unconfirmed GUEST, unregistred user! 1999-01-14 #12 你把一些窗体在用的时候在创建它, 数据库,在用的时候在ACTIVE.DELPHI 下有个菜单鼠标放上去的时候要等上 一会儿,就是这个道理. 这就要求你的程序模块划分的好了,事实 上C和PASCAL的速度差不了多少的. DELPHI编译的快是因为它每次编译以后,都 在内存中建立了当前PROJECT的相关数据, 你有任何改动,它都会纪录下来,然后下一次 编译的时候比较一下. 如果你新打开个项目,第一次编译的时候甚至 比VB都慢,第二次吗,你改动的越少越快. 你写过ISAPI吗,它的速度也比ASP快是快点,但不多. 同样的道理,数据库太大了,时间全部浪费在 打开数据库中了.
你把一些窗体在用的时候在创建它, 数据库,在用的时候在ACTIVE.DELPHI 下有个菜单鼠标放上去的时候要等上 一会儿,就是这个道理. 这就要求你的程序模块划分的好了,事实 上C和PASCAL的速度差不了多少的. DELPHI编译的快是因为它每次编译以后,都 在内存中建立了当前PROJECT的相关数据, 你有任何改动,它都会纪录下来,然后下一次 编译的时候比较一下. 如果你新打开个项目,第一次编译的时候甚至 比VB都慢,第二次吗,你改动的越少越快. 你写过ISAPI吗,它的速度也比ASP快是快点,但不多. 同样的道理,数据库太大了,时间全部浪费在 打开数据库中了.
C CJ Unregistered / Unconfirmed GUEST, unregistred user! 1999-01-14 #13 Delphi的编译速度快,你按F9最多五秒,程序开始启动,而不是目标执行速度快 何况那么多VCL怎么会快?尽量用动态创建FORM可能会加快速度
3 3h Unregistered / Unconfirmed GUEST, unregistred user! 1999-01-14 #14 小唐的看法是对的,但是却是一样的。 这种动态建立的方法,只不过将本来在开始运行的一些程序段放在后来使用时 再建立而已,但必须处理得好否则必死。 我还是建议少用控件,多用API,优化函数、过程代码来达到高效。
小唐的看法是对的,但是却是一样的。 这种动态建立的方法,只不过将本来在开始运行的一些程序段放在后来使用时 再建立而已,但必须处理得好否则必死。 我还是建议少用控件,多用API,优化函数、过程代码来达到高效。
C chenke Unregistered / Unconfirmed GUEST, unregistred user! 1999-01-15 #15 动态创建窗体的方法,如果你的程序每次都用到全部窗体,其实不一定有必要; 倒是可以继承已有窗体创建新窗体,可以节省不少资源和时间。
H huizhang Unregistered / Unconfirmed GUEST, unregistred user! 1999-01-15 #16 各位的发言都很有道理, Delphi编译程序是 编译快 -- 装载慢 -- 运行快. 这里就有一个"得失"的取舍问题: 1. 编译快符合时代精神, 必须肯定 2. 装载慢主要是程序太大, 加载需要时间 Form多, 程序自然较大, 动态创建Form并不能减少程序的大小, 因为每一个Form 对应的dcu必须加载到内存. 应该使用通用Form, 最好是多功能的Form. 比如说 多个Table的显示, 用一个Form, 一个DbGrid, 根据需要改变DataSource. 3. 运行快, 程序都加载到内存了, 一切都准备齐全了, 当然运行快了. 可以回到已答问题<a href="DispQ.asp?LID=91277">"如何是Delphi编译的EXE变廋"</a>去看一看. 那里有一个AsPack(也叫做Fat-to-Thin)的程序可以使Delphi编译的32位的EXE减肥 50%以上, 是Delphi爱好者必备.
各位的发言都很有道理, Delphi编译程序是 编译快 -- 装载慢 -- 运行快. 这里就有一个"得失"的取舍问题: 1. 编译快符合时代精神, 必须肯定 2. 装载慢主要是程序太大, 加载需要时间 Form多, 程序自然较大, 动态创建Form并不能减少程序的大小, 因为每一个Form 对应的dcu必须加载到内存. 应该使用通用Form, 最好是多功能的Form. 比如说 多个Table的显示, 用一个Form, 一个DbGrid, 根据需要改变DataSource. 3. 运行快, 程序都加载到内存了, 一切都准备齐全了, 当然运行快了. 可以回到已答问题<a href="DispQ.asp?LID=91277">"如何是Delphi编译的EXE变廋"</a>去看一看. 那里有一个AsPack(也叫做Fat-to-Thin)的程序可以使Delphi编译的32位的EXE减肥 50%以上, 是Delphi爱好者必备.
唐 唐晓锋 Unregistered / Unconfirmed GUEST, unregistred user! 1999-01-15 #17 有一点大家必须注意的是FAT-TO-THIN这种程序 到底可靠不可靠,如果很可靠的话BORLAND自己为 什么不采用这种方法. 如果自己写程序非商业化,这种工具的确不错;商业化 劝大家还是慎重使用,现在的机器能经得起98这个大 家伙的考验,我们写的程序应该应付得了. 顺便问一句:我的机器是赛扬300A超频到450用的,平时 很稳定,为什么98却不能正常关机(正在关机...,就在也不动了).
有一点大家必须注意的是FAT-TO-THIN这种程序 到底可靠不可靠,如果很可靠的话BORLAND自己为 什么不采用这种方法. 如果自己写程序非商业化,这种工具的确不错;商业化 劝大家还是慎重使用,现在的机器能经得起98这个大 家伙的考验,我们写的程序应该应付得了. 顺便问一句:我的机器是赛扬300A超频到450用的,平时 很稳定,为什么98却不能正常关机(正在关机...,就在也不动了).