我今天测试跟楼主有些差异:
如果测试LISTBOX组件,确实不论是批量更新,还是即时更新,FM要比VCL慢很多,但我用TMEMO组件测试,则FM比VCL并不差,甚至还要好很多,
代码:
CONST
N :CARDINAL = 1000;
var
I:integer;
S_TIME,E_TIME:cardinal;
begin
S_TIME := GetTickCount();
MEMO1.Lines.BeginUpdate ;//注意:在FM中改为:MEMO1.BeginUpdate
for I := 1 to N do
BEGIN
memo1.Lines.Add('科学技术史 ,中国');
END;
MEMO1.Lines.EndUpdate ;//注意:在FM中改为:MEMO1.EndUpdate
E_TIME := GetTickCount();
FORM1.Caption := INTTOSTR(E_TIME - S_TIME);
多次测试,结果显示:
如果在批量更新下(也就是启用BeginUpdate),FM跟VCL几乎一样,FM时间为:250多,而VCL的时间为:290多
而在即时更新下((不启用BeginUpdate)),则FM远比VCL快,FM时间为:1300多,而VCL的时间为:7800多。
所以,不能仅仅从某一个控件上得执行情况来推断整个系统的快慢。
1、以前看到有这样的争吵贴,什么“Delphi” VS “VB” VS “VC”之类的,猛扁Delphi,就有大侠(因为别人讲得好,所以我叫他大侠)这样说:“为什么只是扁Delphi,而不是给出有用的建议?其实,Delphi发展得好,对程序员只有好处没有坏处,因为程序员会多一项选择(现在的团队,一般都不是只会一种开发工具的,都是根椐要开发的软件的特点及团队技术积办来选择合适的工具),而且,开发工具也是有竞争才有进步。”所以,我觉得,这么多的Fans,与其这样吵,还不如专门开一个Delphi的Bug和建议版块,客观的进出Delphi的问题,对Delphi的发展才有好处;