Код:
| Код | using System; using System.Collections.Generic; using System.Text; using System.Collections; using System.Diagnostics;
namespace BitArrayTest { class Program { static void Main(string[] args) { int iterations = 10000000;
BitArray ba = new BitArray(new byte[] { 134 });
byte bb = 0;
DateTime dt1, dt2; TimeSpan ts1, ts2;
dt1 = DateTime.Now; for (int i = 0; i < iterations; i++) bb = MyBitArrayToByte(ba); dt2 = DateTime.Now; ts1 = dt2 - dt1;
dt1 = DateTime.Now; for (int i = 0; i < iterations; i++) bb = HisBitArrayToByte(ba); dt2 = DateTime.Now; ts2 = dt2 - dt1;
Console.WriteLine("Первый метод выполнялся {0} мс", ts1.TotalMilliseconds); Console.WriteLine("Второй метод выполнялся {0} мс", ts2.TotalMilliseconds); Console.WriteLine("{0} метод быстрее", (ts1 < ts2) ? "Первый" : "Второй"); Console.ReadKey(true); }
private static byte MyBitArrayToByte(BitArray ba) { byte result = 0; for (byte index = 0, m = 1; index < 8; index++, m *= 2) result += ba.Get(index) ? m : (byte)0; return result; }
private static byte HisBitArrayToByte(BitArray ba) { byte[] b = new byte[1]; ba.CopyTo(b, 0); return b[0]; } } }
|
Вывод:
| Код | Первый метод выполнялся 1593,75 мс Второй метод выполнялся 4250 мс
|
|