public void MemoryAccessVecViaHelperUnsafe(RetainableMemory <int> rm) { long sum = 0; using (Benchmark.Run("HelperUnsafe", rm.Length)) { object obj = rm; for (long i = 0; i < rm.Length; i++) { sum += RetainableMemoryHelper.GetVecRef(obj).UnsafeGetUnaligned <int>((IntPtr)i); } } if (sum < 1000) { throw new InvalidOperationException(); } }
public void MemoryAccessVecViaDbHelperDangerous(RetainableMemory <int> rm) { long sum = 0; using (Benchmark.Run("DbHelperDangerous (^)", rm.Length)) { DataBlockLike db = new DataBlockLike { Rm = rm }; for (int i = 0; i < rm.Length; i++) { sum += RetainableMemoryHelper.GetVecRef(db.Rm).DangerousGetUnaligned <int>(i); } } if (sum < 1000) { throw new InvalidOperationException(); } }