public void SliceDisposeBenchmark() { // 6.3 MOPS var count = (int)TestUtils.GetBenchCount(1_000_000, 100); var rounds = 10; var bufferSize = 1000; var rm = BuffersTestHelper.CreateFilledRM(bufferSize); var vs = RetainedVec.Create(rm, 0, rm.Length); Assert.AreEqual(rm.Length, vs.Vec.Length); for (int r = 0; r < rounds; r++) { using (Benchmark.Run("Slice/Dispose", count)) { for (int i = 0; i < count; i++) { var vs1 = vs.Slice(0, vs.Vec.Length, externallyOwned: true); vs1.Dispose(); } } } Benchmark.Dump(); vs.Dispose(); }
public void Equality() { RetainedVec vs1 = default; RetainedVec vs2 = default; Assert.AreEqual(vs1, vs2); Assert.AreEqual(vs1.Vec.Length, 0); var count = 1000; var rm = BuffersTestHelper.CreateFilledRM(count); var vs = RetainedVec.Create(rm, 0, rm.Length); Assert.AreNotEqual(vs1, vs); var vsCopy = vs.Slice(0, vs.Vec.Length, true); var vsSlice = vs.Slice(0, vs.Vec.Length - 1, true); Assert.AreEqual(vs, vsCopy); Assert.AreNotEqual(vs, vsSlice); vs.Dispose(); }
public void VectorStorageReadBench() { var count = (int)TestUtils.GetBenchCount(1_000_000, 100); var rounds = 10; var mult = 500; var rm = BuffersTestHelper.CreateFilledRM(count); var vs = RetainedVec.Create(rm, 0, rm.Length); Assert.AreEqual(rm.Length, vs.Vec.Length); int sum = 0; for (int r = 0; r < rounds; r++) { using (Benchmark.Run("VS Read", vs.Vec.Length * mult)) { for (int _ = 0; _ < mult; _++) { for (int i = 0; i < vs.Vec.Length; i++) { var vi = vs.Vec.DangerousGetUnaligned <int>(i); //if (vi != i) //{ // Assert.Fail("vi != i"); //} unchecked { sum += vi; } } } } } Benchmark.Dump(); Console.WriteLine(sum); }
public void CouldCreateVsAndReadElements() { var count = 1000; var rm = BuffersTestHelper.CreateFilledRM(count); var vs = RetainedVec.Create(rm, 0, rm.Length); Assert.AreEqual(rm.Length, vs.Vec.Length); long sum = 0L; for (int i = 0; i < rm.Length; i++) { var vi = vs.Vec.DangerousGetUnaligned <long>(i); if (vi != i) { Assert.Fail("vi != i"); } sum += vs.Vec.DangerousGetUnaligned <int>(i); } Console.WriteLine(sum); vs.Dispose(); }