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); }