16 static int tsize = 1000 * 1048576;
17 static const char path[] = "/tmp/wt.dat";
18 static char buf[65536];
20 static uint64_t now(void) {
23 if (gettimeofday(&tv, NULL))
26 return tv.tv_sec * 1000000ULL + tv.tv_usec;
29 static void writetest(int size, size_t bsize)
36 assert(bsize <= sizeof buf);
38 int fd = open(path, O_CREAT|O_WRONLY, 0644);
40 perror("open failed");
46 for (i = 0; i < size; i += bsize) {
47 int rv = write(fd, buf, bsize);
48 if (c++ % 2000 == 0) fprintf(stderr, ".");
50 perror("write failed");
66 elapsed = (end - start) / 1e6;
67 mbps = ((tsize/elapsed)) / 1048576;
69 fprintf(stderr, "\nWrote %d bytes in %03fs using %ld byte buffers: %03fmB/s\n", size, elapsed, bsize, mbps);
72 void readtest(int size, size_t bsize)
79 assert(bsize <= sizeof buf);
81 int fd = open(path, O_RDONLY, 0644);
83 perror("open failed");
89 for (i = 0; i < size; i += bsize) {
90 int rv = read(fd, buf, bsize);
92 perror("write failed");
99 elapsed = (end - start) / 1e6;
100 mbps = ((tsize/elapsed)) / 1048576;
102 fprintf(stderr, "Read %d bytes in %03fs using %ld byte buffers: %03fmB/s\n", size, elapsed, bsize, mbps);
112 int bsizes[] = {1024, 4096, 8192, 16384, 32768, 65536, 0};
114 for (i = 0; bsizes[i] != 0; i++) {
115 writetest(tsize, bsizes[i]);
117 for (i = 0; bsizes[i] != 0; i++) {
118 readtest(tsize, bsizes[i]);