2009年12月8日 星期二

在vs2008測試VB 與 C#的效率

某天在網路上看到 VB 的效能比C#好! 心中有些懷疑,以往的觀念總覺得 C++ 的效能相當好,C# 應該是改良自 C++,效能怎麼可能輸給 VB ? 所以就在同一方案中分別起了 VB 與 C# 的專案,並且在各別的專案中只利用預設的 Default.aspx 頁面,而在 .aspx.vb 及 .aspx.cs 的Page_Load 中加入如下的程式碼:

VB (耗時:1分14秒)
Dim i, j, k, l, m, n As Integer
For n = 0 To 19
For m = 0 To 36767
i = 0
For l = 0 To 32767
j = i
i += 2
k = i
Next
Next
Next
Dim b As DateTime = Now
Response.Write(a)
Response.Write("<br>")
Response.Write(i)
Response.Write("<br>")
Response.Write(j)
Response.Write("<br>")
Response.Write(k)
Response.Write("<br>")
Response.Write(b)
Response.Write("<br>")


C#(耗時:1分38秒)
            DateTime a = DateTime.Now;
int i = 0, j = 0, k = 0 ;
for (int n = 0; n < 20; n++)
{

for (int m = 0; m < 36768; m++)
{
i = 0;
for (int l = 0; l < 32768; l++)
{
j = i;
i += 2;
k = i;
}
}
}
DateTime b = DateTime.Now;
Response.Write(a)
Response.Write("<br>")
Response.Write(i)
Response.Write("<br>")
Response.Write(j)
Response.Write("<br>")
Response.Write(k)
Response.Write("<br>")
Response.Write(b)
Response.Write("<br>")



VB 執行結果:
2009/12/8 下午 02:15:35
65536
65534
65536
2009/12/8 下午 02:16:49

C# 執行結果
2009/12/8 下午 02:17:31
65536
65534
65536
2009/12/8 下午 02:19:09

由是在同一台機器上執行,環境因素應可排除。 測試的過成中,曾將 C# 的
j = i;
i += 2;
k = i;
改成
j = i++;
k = ++i;

j = i;
i++;
i++;
k = i;
兩種方式,結果都發生 逾時錯誤!! Why?

沒有留言:

張貼留言