From f2a9bbe96e75364365a57dab0eab3436ef24769a Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 2 Nov 2019 10:38:46 +0100 Subject: [PATCH] disk_benchmark: Use 64-bit values for bytes-per-second values Let's dress for the job we want, and prepare for faster speeds. :^) --- Userland/disk_benchmark.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Userland/disk_benchmark.cpp b/Userland/disk_benchmark.cpp index 65c9acbe3f..932ae51f01 100644 --- a/Userland/disk_benchmark.cpp +++ b/Userland/disk_benchmark.cpp @@ -6,11 +6,13 @@ #include #include #include +#include +#include #include struct Result { - int write_bps; - int read_bps; + u64 write_bps; + u64 read_bps; }; Result average_result(const Vector& results) @@ -75,7 +77,7 @@ int main(int argc, char** argv) umask(0644); - auto filename = String::format("%s/disk_benchmark", directory); + auto filename = String::format("%s/disk_benchmark.tmp", directory); for (auto file_size : file_sizes) { for (auto block_size : block_sizes) { @@ -96,7 +98,7 @@ int main(int argc, char** argv) usleep(100); } auto average = average_result(results); - printf("\nFinished: runs=%d time=%dms write_bps=%d read_bps=%d\n", results.size(), timer.elapsed(), average.write_bps, average.read_bps); + printf("\nFinished: runs=%d time=%dms write_bps=%llu read_bps=%llu\n", results.size(), timer.elapsed(), average.write_bps, average.read_bps); sleep(1); } @@ -136,7 +138,8 @@ Result benchmark(const String& filename, int file_size, int block_size, ByteBuff } nwrote += n; } - res.write_bps = (file_size / timer.elapsed()) * 1000; + + res.write_bps = (u64)(timer.elapsed() ? (file_size / timer.elapsed()) : file_size) * 1000; if (lseek(fd, 0, SEEK_SET) < 0) { perror("lseek"); @@ -153,7 +156,8 @@ Result benchmark(const String& filename, int file_size, int block_size, ByteBuff } nread += n; } - res.read_bps = (file_size / timer.elapsed()) * 1000; + + res.read_bps = (u64)(timer.elapsed() ? (file_size / timer.elapsed()) : file_size) * 1000; if (close(fd) != 0) { perror("close");