コード例 #1
0
        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();
        }
コード例 #2
0
        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();
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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();
        }