WizardWu 編程網

一位台灣的工程師,接觸 .NET 逾十年,近年研究 SQL Server、Performance Tuning、手機應用

博客园 首页 新随笔 联系 订阅 管理

常有人以為 VB.NET 程式的執行效能不如 C#,但根據 msdn 的說法,VB.NET 和 C# 都是編譯成 MSIL 中繼語言,因此基本上以二者所寫出來的應用程式也具有相同的效能。最常導致二者在 web 應用程式中,執行效能差異的罪魁禍首,首推過去在 ASP 中用 VBScript 不須明確宣告「變數」及其「型別」的習慣。因為在 VB.NET/ASP.NET 中,沒指定 As 的變數與引數其型別將會是 Object,該型別並非效能最佳型別。

在 VB.NET 中明確地用 As 指定型別可提高效能,因為型別推斷的時機,會從執行時期提前至編譯時期,能防止源碼因疏忽導致「晚期繫結」,可避免 Common Language Runtime 被迫在執行階段去做型別檢查和成員查閱。

此外,在 VB.NET 中的:
Dim var As New <型別>()

就是下方這一行的縮寫:
Dim var As <型別> = New <型別>()

根據 msdn 的說法,許多 VB 6 的程式員都不使用「As New」來宣告變數和產生物件 instance,因為這在 VB 6 中會降低效能。但在 VB.NET 中,As New 語法並不會降低效能,因此開發人員可以任意使用。


(本文在版工的舊 Blog 中,發表日期為 2006/05/05)

posted on 2008-06-25 23:49  WizardWu  阅读(1051)  评论(0编辑  收藏  举报