自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

簡(jiǎn)單介紹C#數(shù)組和函數(shù)

開(kāi)發(fā) 后端
本文介紹C#數(shù)組和C#函數(shù),包括介紹2種C#函數(shù)調(diào)用改成第3種內(nèi)嵌式算法,以及介紹解釋為編譯器的優(yōu)化等。

C#數(shù)組主要程序部份:

  1. static void Main(string[] args)  
  2. {  
  3. int i,k;  
  4. double p = 0;  
  5. DateTime s, e;  
  6. byte[] test = new byte[65536];  
  7. byte[] test2 = new byte[65536];  
  8. for(int i = 0; i < 10; i++)  
  9. {  
  10. s = DateTime.Now;  
  11. for(j=0; j<50000; j++)  
  12. {  
  13. }  
  14. e = DateTime.Now;  
  15. TimeSpan c = e - s;  
  16. Console.WriteLine(c.TotalMilliseconds.ToString());  
  17. p += c.TotalMilliseconds;  
  18. }  
  19.  
  20. p /= 10;  
  21. Console.WriteLine("***" + p.ToString() + "***");  
  22. Console.Read();  

 將其中部份替換成以下幾種方法:

1.test = new byte[65536];這種方法顯而易懂,每次都新建C#數(shù)組,里面的數(shù)值當(dāng)然都是0啦。

2.memset(test,0,65536);自寫(xiě)一個(gè)C#函數(shù)memset:

  1. public static void memset(byte[] buf, byte val, int size)  
  2. {  
  3. int i;  
  4. for(i=0; i < size; i++)  
  5. buf[i] = val;  

3.for(k = 0; k < 65536; test[k++] = 0);
把C#函數(shù)memset直接寫(xiě)入紅色部份。這樣的想法很簡(jiǎn)單,節(jié)省調(diào)用C#函數(shù)的開(kāi)銷。

4.Array.Clear(test,0,65536);直接使用.Net自帶方法。

5.test2.CopyTo(test, 0);用空數(shù)組向目標(biāo)數(shù)組中復(fù)制內(nèi)容。

然后理行測(cè)試,結(jié)果如下:

方法 最長(zhǎng) 最短 平均
1 1937.5 1812.5 1842.1875
2 4593.75 4625 4584.375
3 6046.875 5984.375 6001.5625
4 562.5 640.5 581.25
5 812.5 750 770.3125

計(jì)算機(jī):P43.0E(超線程開(kāi)啟)/DDR400 512M(雙通道)軟件環(huán)境:Win XP - Sp2/VS2003單位:毫秒(ms)

結(jié)果很顯然,Array.Clear()方法是最終的優(yōu)勝者。但它有一個(gè)缺點(diǎn),就是只可以將數(shù)組清空(零)。如果要把C#數(shù)組設(shè)置為某一特定格式CopyTo()以空間換時(shí)間的方式是最好的。

只有一點(diǎn)看不明白,把第2種C#函數(shù)調(diào)用改成第3種內(nèi)嵌式算法后,效率反而下降了。這只能解釋為編譯器的優(yōu)化了??磥?lái)用C#寫(xiě)程序不用太關(guān)心函數(shù)調(diào)用的開(kāi)銷。

【編輯推薦】

  1. C#記憶功能的地址欄控件
  2. 描述C#調(diào)用外部進(jìn)程
  3. C#語(yǔ)言操縱數(shù)據(jù)庫(kù)事務(wù)
  4. 概述C#語(yǔ)言異常處理
  5. 簡(jiǎn)單介紹C#數(shù)組和函數(shù)
責(zé)任編輯:佚名 來(lái)源: 51cto.com
相關(guān)推薦

2009-08-07 17:12:07

C# DLL函數(shù)

2009-08-12 10:11:18

C# 回調(diào)函數(shù)

2009-08-27 13:37:11

C#類和結(jié)構(gòu)

2009-09-07 16:09:19

C#和Java特點(diǎn)

2009-08-20 18:44:54

C#和ADO.NET

2009-08-18 16:57:24

VB.NET和C#

2009-09-17 16:53:15

C#數(shù)組

2009-09-01 16:19:57

C# new()約束

2009-08-03 17:51:43

C#引用類型

2009-08-06 18:15:13

C# SQL Serv

2009-08-13 17:36:54

編譯C#代碼

2009-08-14 16:46:44

C#元數(shù)據(jù)

2009-08-20 16:25:59

C# 匿名方法

2009-08-25 13:38:35

C# Timer組件

2009-09-03 09:40:57

C#創(chuàng)建表單

2009-07-31 14:15:38

C# 構(gòu)造函數(shù)

2009-08-07 17:41:40

C#預(yù)處理

2009-08-27 10:19:22

C#匿名類型

2009-08-06 14:53:41

C# User類

2009-08-10 16:19:37

C#冒泡排序
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)