From 91e9d17c3f80a741db5e753c36c4c93922494897 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Mon, 8 Sep 2008 00:50:27 +0000 Subject: [PATCH] Small test program timing our path resolution. Which sucks badly... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27364 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/tests/system/kernel/Jamfile | 2 + .../system/kernel/path_resolution_test.cpp | 48 +++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 src/tests/system/kernel/path_resolution_test.cpp diff --git a/src/tests/system/kernel/Jamfile b/src/tests/system/kernel/Jamfile index b841d855ed..fd85348d33 100644 --- a/src/tests/system/kernel/Jamfile +++ b/src/tests/system/kernel/Jamfile @@ -18,6 +18,8 @@ SimpleTest lock_node_test : SimpleTest page_fault_cache_merge_test : page_fault_cache_merge_test.cpp ; +SimpleTest path_resolution_test : path_resolution_test.cpp ; + SimpleTest port_close_test_1 : port_close_test_1.cpp ; SimpleTest port_close_test_2 : port_close_test_2.cpp ; diff --git a/src/tests/system/kernel/path_resolution_test.cpp b/src/tests/system/kernel/path_resolution_test.cpp new file mode 100644 index 0000000000..78d7776bc1 --- /dev/null +++ b/src/tests/system/kernel/path_resolution_test.cpp @@ -0,0 +1,48 @@ +/* + * Copyright 2008, Ingo Weinhold, ingo_weinhold@gmx.de. + * Distributed under the terms of the MIT License. + */ + +#include +#include + +#include + + +static void +time_lstat(const char* path) +{ + printf("%-60s ...", path); + fflush(stdout); + bigtime_t startTime = system_time(); + + static const int32 iterations = 10000; + for (int32 i = 0; i < iterations; i++) { + struct stat st; + lstat(path, &st); + } + + bigtime_t totalTime = system_time() - startTime; + printf(" %5.3f us/call\n", (double)totalTime / iterations); +} + + +int +main() +{ + const char* const paths[] = { + "/", + "/boot", + "/boot/develop", + "/boot/develop/headers", + "/boot/develop/headers/posix", + "/boot/develop/headers/posix/sys", + "/boot/develop/headers/posix/sys/stat.h", + NULL + }; + + for (int32 i = 0; paths[i] != NULL; i++) + time_lstat(paths[i]); + + return 0; +}