Exemple #1
0
        public async Task CanWriteBytes()
        {
            byte[] bytes = new byte[1024 * 10];

            for (int i = 0; i < bytes.Length; i++)
            {
                bytes[i] = 1;
            }

            List <Task> tasks = new List <Task>();

            for (int i = 0; i < 10; i++)
            {
                var t = Task.Run(async() =>
                {
                    var guid = Guid.NewGuid();
                    await appender.Append("test-" + guid, bytes, 0);
                    await appender.Append("test-" + guid, bytes, 1);
                    await appender.Append("test-" + guid, bytes, 2);
                    await appender.Append("test-" + guid, bytes, 3);
                    await appender.Append("test-" + guid, bytes, 4);
                    await appender.Append("test-" + guid, bytes, 5);
                    await appender.Append("test-" + guid, bytes, 6);
                });

                tasks.Add(t);
            }

            await Task.WhenAll(tasks.ToArray());

            var stream = await this.appender.ReadRecords(0, int.MaxValue);

            Assert.Equal(10 * 7, stream.Length);
        }
        private async Task PerformanceAppend(int version, int bytefrom, int byteto, string streamid)
        {
            byte[] bytes = new byte[ran.Next(bytefrom, byteto)];
            ran.NextBytes(bytes);
            Console.WriteLine("");
            Console.Write("Uploading: {0} ({1} bytes)", streamid, bytes.Length);
            Stopwatch watch = new Stopwatch();

            watch.Start();
            await appender.Append(streamid, bytes, version);

            watch.Stop();

            var ms = watch.ElapsedMilliseconds;
            var kb = 1024;

            Console.Write(" done in {0} ms ({1:0.00} kbyte/sec ~ {2:0}kb)", ms, (bytes.Length / kb) / (ms / 1000), bytes.Length / kb);
        }