1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 19:27:45 +00:00

disk_benchmark: Use 64-bit values for bytes-per-second values

Let's dress for the job we want, and prepare for faster speeds. :^)
This commit is contained in:
Andreas Kling 2019-11-02 10:38:46 +01:00
parent a1ea3754a3
commit f2a9bbe96e

View file

@ -6,11 +6,13 @@
#include <getopt.h> #include <getopt.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/stat.h> #include <sys/stat.h>
struct Result { struct Result {
int write_bps; u64 write_bps;
int read_bps; u64 read_bps;
}; };
Result average_result(const Vector<Result>& results) Result average_result(const Vector<Result>& results)
@ -75,7 +77,7 @@ int main(int argc, char** argv)
umask(0644); 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 file_size : file_sizes) {
for (auto block_size : block_sizes) { for (auto block_size : block_sizes) {
@ -96,7 +98,7 @@ int main(int argc, char** argv)
usleep(100); usleep(100);
} }
auto average = average_result(results); 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); sleep(1);
} }
@ -136,7 +138,8 @@ Result benchmark(const String& filename, int file_size, int block_size, ByteBuff
} }
nwrote += n; 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) { if (lseek(fd, 0, SEEK_SET) < 0) {
perror("lseek"); perror("lseek");
@ -153,7 +156,8 @@ Result benchmark(const String& filename, int file_size, int block_size, ByteBuff
} }
nread += n; 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) { if (close(fd) != 0) {
perror("close"); perror("close");