public void Test_Speed()
{
Debug.WriteLine("Speed test in debug mode will not really prove anything. :(");
var key = new byte[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17};
var k0 = BitConverter.ToUInt64(key, 0);
var k1 = BitConverter.ToUInt64(key, 8);
var inba = new byte[1024];
for (var j = 0; j < inba.Length; ++j) inba[j] = (byte) (j & 0xff);
const int times = 256000;
var sb24 = Stopwatch.StartNew();
for (var i = 0; i < times; ++i) SipHash.SipHash_2_4(inba, k0, k1);
sb24.Stop();
var sb24c = Stopwatch.StartNew();
for (var i = 0; i < times; ++i) SipHash.SipHash_2_4_UlongCast(inba, k0, k1);
sb24c.Stop();
var sb24cf = Stopwatch.StartNew();
for (var i = 0; i < times; ++i) SipHash.SipHash_2_4_UlongCast_ForcedInline(inba, k0, k1);
sb24cf.Stop();
var sb24f = Stopwatch.StartNew();
for (var i = 0; i < times; ++i) SipHash.SipHash_2_4_ForcedInline(inba, k0, k1);
sb24f.Stop();
Console.WriteLine("SipHash_2_4:{0}ms SipHash_2_4_UlongCast:{1}ms SipHash_2_4_UlongCast_ForcedInline:{2}ms SipHash_2_4_ForcedInline:{3}ms ", sb24.ElapsedMilliseconds, sb24c.ElapsedMilliseconds, sb24cf.ElapsedMilliseconds,sb24f.ElapsedMilliseconds);
}