private TestResult BlockTest(BenchmarkWay wayToGo) { var result = new TestResult(); var fileSize = (int)FileSize; var blockSize = (int)wayToGo; byte[] testFile = new byte[blockSize].FillWithRandomValues(); var iterAmount = (int)Math.Ceiling((double)fileSize / blockSize); string randomFileName = GetFileName(LocalDisk); _createdFiles.Add(LocalDisk + randomFileName); /* Write test */ _watch.Reset(); _watch.Start(); using (var fStream = new FileStream(LocalDisk + randomFileName, FileMode.Create, FileAccess.Write, FileShare.None, blockSize, FileOptions.WriteThrough | FileFlagNoBuffering)) { while (iterAmount > 0) { fStream.Write(testFile, 0, blockSize); --iterAmount; } } _watch.Stop(); result.WriteSpeedMBps = (double)fileSize / _watch.ElapsedMilliseconds / 1024 / 1024 * 1000; /* Read test */ iterAmount = (int)Math.Ceiling((double)fileSize / blockSize); _watch.Reset(); _watch.Start(); using (var fStream = new FileStream(LocalDisk + randomFileName, FileMode.Open, FileAccess.Read, FileShare.None, blockSize, FileOptions.WriteThrough | FileFlagNoBuffering)) { while (iterAmount > 0) { fStream.Read(testFile, 0, blockSize); --iterAmount; } } _watch.Stop(); result.ReadSpeedMBps = (double)fileSize / _watch.ElapsedMilliseconds / 1024 / 1024 * 1000; /* Delete created file*/ Clear(); return(result); }
private TestResult BlockTest(BenchmarkWay wayToGo) { var result = new TestResult(); var fileSize = (int) FileSize; var blockSize = (int) wayToGo; byte[] testFile = new byte[blockSize].FillWithRandomValues(); var iterAmount = (int) Math.Ceiling((double) fileSize / blockSize); string randomFileName = GetFileName(LocalDisk); _createdFiles.Add(LocalDisk + randomFileName); /* Write test */ _watch.Reset(); _watch.Start(); using (var fStream = new FileStream(LocalDisk + randomFileName, FileMode.Create, FileAccess.Write, FileShare.None, blockSize, FileOptions.WriteThrough | FileFlagNoBuffering)) { while (iterAmount > 0) { fStream.Write(testFile, 0, blockSize); --iterAmount; } } _watch.Stop(); result.WriteSpeedMBps = (double) fileSize / _watch.ElapsedMilliseconds / 1024 / 1024 * 1000; /* Read test */ iterAmount = (int) Math.Ceiling((double) fileSize / blockSize); _watch.Reset(); _watch.Start(); using (var fStream = new FileStream(LocalDisk + randomFileName, FileMode.Open, FileAccess.Read, FileShare.None, blockSize, FileOptions.WriteThrough | FileFlagNoBuffering)) { while (iterAmount > 0) { fStream.Read(testFile, 0, blockSize); --iterAmount; } } _watch.Stop(); result.ReadSpeedMBps = (double) fileSize / _watch.ElapsedMilliseconds / 1024 / 1024 * 1000; /* Delete created file*/ Clear(); return result; }