[This a reproduction of a message in my old blog. It is reproduced here to remind me to retest this when the BDS 2007 is released]
- How are Vcl.net, Vcl32 and Win form compared to each other on loading a form?
- Are they sensitive to the number of controls on a form?
The tool I used to profile them is AQTime4 from AutomatedQA, which can be used to profile, Delphi.Win32, Delphi.Net, C#, C++ (managed or unmanaged).
Two applications are developed. One, the Large App, has 1 tab control with 5 tab pages and they contains buttons (47), combo boxes (20), edit boxes (40), rich edit controls (12), and treeview (16). All together 241 controls.
The other is a lot smaller with 1 tab control 5 tab pages and all up 40 controls of similar types.
These applications were developed in Delphi.Win32 and re-compiled to Delphi.Net and then re-coded to WinForm using either Delphi or C# all using Delphi Studio 2006. All these applications did not contain any code other than what was generated by the Form Designer.
Here are the results for the large app:
Build Type | Method and Children | Time (sec) |
---|---|---|
VCL 32 | TForm2::Create() | 0.16606 |
VCL.Net | TForm2::ctor() | 1.20292 |
WinForm/C# | WinForm::ctor() | 0.2645 |
For smaller applications here are the results:
Build Type | Method and Children | Time (sec) |
---|---|---|
VCL.32 | [No Debug Symbols] | |
VCL.Net | TForm1::ctor | 0.53663 |
WinForm/Delphi | TWinForm12::ctor | 0.21640 |
Profile results on two real applications one using Delphi3 and the other Delphi2006 produced data in agreement with the trend but with a much severe ratio because they contain actual code that increases the load time further.
From these data we can conclude:
- VCL.Net is slower than VCL.Win32 and analysis of the call stacks in these two technologies revealed a lot more methods calls were involved in VCL.Net as compared to the lean VCL.32, even for reading form resources.
- VCL.Net is also slower than WinForm, regardless of the language used to program it.
- VCL.Net is more sensitive to the number of controls on a form as compared with WinForm, which is essentially flat. The ratio of VCL.Net : WinForm is 2.5 : 1 for a form with 40 controls as compared with 4.5 : 1 for one with 241 controls. Hence this means the load time of VCL.Net is sensitive to the number of controls on the form.
- The WinForm is relatively insensitive to the number of controls on the form.
So here you are.
No comments:
Post a Comment