diff options
author | Andy Lutomirski <luto@kernel.org> | 2016-06-16 11:04:02 -0700 |
---|---|---|
committer | Andy Lutomirski <luto@kernel.org> | 2016-06-16 11:04:02 -0700 |
commit | d1342d248f3685dba7dfd305750571a1df214ee5 (patch) | |
tree | cc9c931e92f4d18197602593d75d8a78e4cb29e1 | |
parent | d8164c2831be9bbcfcb2d6d4d89c8ab373ca530e (diff) | |
download | misc-tests-d1342d248f3685dba7dfd305750571a1df214ee5.tar.gz |
timing_test: Add iter multipliers
-rw-r--r-- | timing_test.cc | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/timing_test.cc b/timing_test.cc index 0468dac..ff8062e 100644 --- a/timing_test.cc +++ b/timing_test.cc @@ -55,7 +55,7 @@ static void *empty_thread_proc(void *) int main(int argc, char **argv) { if (argc < 3) { - printf("Usage: time <Miters> <mode> [POSIX clock id]\n"); + printf("Usage: time <iters> <mode> [POSIX clock id]\n"); printf("\nClocks are:\n"); describe_clock("CLOCK_REALTIME", CLOCK_REALTIME); describe_clock("CLOCK_MONOTONIC", CLOCK_MONOTONIC); @@ -78,7 +78,19 @@ int main(int argc, char **argv) if (!vgetcpu) printf("dlsym failed: %s", dlerror()); - size_t loops = (size_t)atol(argv[1]) * 1000000; + long loop_mult = 1; + char *loop_arg = strdup(argv[1]); + size_t loop_arg_len = strlen(loop_arg); + if (loop_arg_len && loop_arg[loop_arg_len-1] == 'k') { + loop_mult = 1000; + loop_arg[loop_arg_len-1] = '\0'; + } else if (loop_arg_len && loop_arg[loop_arg_len-1] == 'M') { + loop_mult = 1000000; + loop_arg[loop_arg_len-1] = '\0'; + } + size_t loops = (size_t)atol(argv[1]) * loop_mult; + free(loop_arg); + clockid_t c = argc > 3 ? atoi(argv[3]) : 0; const char *mode = argv[2]; |