Exemplo n.º 1
0
        private static void Main()
        {
            var serializer = new ProtoBufSerializationEngine();
            // the protobuf serializer might not be thread-safe
            var safeSerializer = new ConcurrentSerializationEngine(serializer);

            var list = new List <TestClass>();

            for (var i = 0; i < COUNT; i++)
            {
                var c = new TestClass {
                    Name = "N" + i, Address = "A" + i
                };
                list.Add(c);
            }

            ShowTimeWithoutOpsPerSec("Overall - 1", () =>
            {
                Run($"Sequentially writing and reading {COUNT} records", () => Generate1(@"d:\temp\1.tmp", safeSerializer, list, SeqForLoop));
                Verify1(@"d:\temp\1.tmp", safeSerializer, list);

                Run($"Multi-threaded writing and reading {COUNT} records", () => Generate1(@"d:\temp\2.tmp", safeSerializer, list, ParForLoop));
                Verify1(@"d:\temp\2.tmp", safeSerializer, list);
            });

            ShowTimeWithoutOpsPerSec("Overall - 2", () =>
            {
                Run($"Sequentially writing and reading {COUNT} records", () => Generate2(@"d:\temp\1.tmp", safeSerializer, list, SeqForLoop));
                Verify2(@"d:\temp\1.tmp", safeSerializer, list);

                Run($"Multi-threaded writing and reading {COUNT} records", () => Generate2(@"d:\temp\2.tmp", safeSerializer, list, ParForLoop));
                Verify2(@"d:\temp\2.tmp", safeSerializer, list);
            });
        }
Exemplo n.º 2
0
        public void GenericAppendOnlyFileSmokeTest()
        {
            var stream     = new MemoryStream();
            var data       = new StreamAccessor(stream);
            var file       = new LowLevelAppendOnlyFile(data);
            var serializer = new ProtoBufSerializationEngine();
            // the protobuf serializer might not be thread-safe
            var safeSerializer = new ConcurrentSerializationEngine(serializer);
            var sut            = new GenericAppendOnlyFile <TestClass>(file, safeSerializer);

            sut.Append(new TestClass {
                Name = "Marcel", Address = "Kennesaw, GA"
            });
            sut.Append(new TestClass {
                Name = "Gigi Meseriasu", Address = "Washington, DC"
            });

            var r1 = sut.Read(0);

            Assert.AreEqual("Marcel", r1.Name);
            Assert.AreEqual("Kennesaw, GA", r1.Address);

            var rs = sut.ReadFrom(0).ToList();
            var r2 = rs[1];

            Assert.AreEqual("Gigi Meseriasu", r2.Name);
            Assert.AreEqual("Washington, DC", r2.Address);

            var index = sut.GetIndex();

            Assert.AreEqual(2, index.Length);
            Assert.AreEqual(0, index[0]);
        }