我正在尝试提高 BitConvert 的速度,或者更确切地说,一种替代方式。
所以这是我认为应该更快的代码:
bsize = ms.length
int index = 0;
byte[] target = new byte[intsize];
target[index++] = (byte)bsize;
target[index++] = (byte)(bsize >> 8);
target[index++] = (byte)(bsize >> 16);
target[index] = (byte)(bsize >> 24);
以及 BitConvert 代码:
BitConverter.GetBytes(bsize)
而且,它并没有更快,从我的测试来看,它慢了很多,慢了两倍多。
那么为什么会慢呢?有没有办法提高速度?
编辑:
BitConvert = 5068 Ticks
OtherMethod above: 12847 Ticks
编辑 2:我的基准代码:
private unsafe void ExecuteBenchmark(int samplingSize = 100000)
{
// run the Garbage collector
GC.Collect();
GC.WaitForPendingFinalizers();
// log start
Console.WriteLine("Benchmark started");
// start timer
var t = Stopwatch.StartNew();
for (int i = 0; i < samplingSize; i++)
{
}
}
// stop timer
t.Stop();
// log ending
Console.WriteLine("Execute1 time = " + t.ElapsedTicks + " ticks");
}