summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManuel Stoeckl <code@mstoeckl.com>2023-02-25 15:57:47 -0500
committerSimon Ser <contact@emersion.fr>2023-05-03 19:15:12 +0000
commitb1b97e8d348ed3ac9c9c422534bd47bc8fb2d31e (patch)
tree5374f148a80f7402aa85f6a8368bba54a9b75751
parentd40052e083be1e26a4ef628b00fb5d969826164f (diff)
downloadwayland-b1b97e8d348ed3ac9c9c422534bd47bc8fb2d31e.tar.gz
tests: drop misleading fixed-benchmark
Because this benchmark performed wl_fixed_to_double conversions on a long sequence of consecutive integers, the compiler could optimize away the addition performed in wl_fixed_to_double, merging it with the loop iteration code. This made tests/fixed-benchmark.c significantly underestimate the actual cost of the current wl_fixed_to_double implementation. Signed-off-by: Manuel Stoeckl <code@mstoeckl.com>
-rw-r--r--tests/fixed-benchmark.c107
-rw-r--r--tests/meson.build9
2 files changed, 0 insertions, 116 deletions
diff --git a/tests/fixed-benchmark.c b/tests/fixed-benchmark.c
deleted file mode 100644
index 277ecce..0000000
--- a/tests/fixed-benchmark.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright © 2012 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial
- * portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <time.h>
-#include <assert.h>
-#include "wayland-private.h"
-
-volatile double global_d;
-
-static void
-noop_conversion(void)
-{
- wl_fixed_t f;
- union {
- int64_t i;
- double d;
- } u;
-
- for (f = 0; f < INT32_MAX; f++) {
- u.i = f;
- global_d = u.d;
- }
-}
-
-static void
-magic_conversion(void)
-{
- wl_fixed_t f;
-
- for (f = 0; f < INT32_MAX; f++)
- global_d = wl_fixed_to_double(f);
-}
-
-static void
-mul_conversion(void)
-{
- wl_fixed_t f;
-
- /* This will get optimized into multiplication by 1/256 */
- for (f = 0; f < INT32_MAX; f++)
- global_d = f / 256.0;
-}
-
-double factor = 256.0;
-
-static void
-div_conversion(void)
-{
- wl_fixed_t f;
-
- for (f = 0; f < INT32_MAX; f++)
- global_d = f / factor;
-}
-
-static void
-benchmark(const char *s, void (*f)(void))
-{
- struct timespec start, stop, elapsed;
-
- clock_gettime(CLOCK_MONOTONIC, &start);
- f();
- clock_gettime(CLOCK_MONOTONIC, &stop);
-
- elapsed.tv_sec = stop.tv_sec - start.tv_sec;
- elapsed.tv_nsec = stop.tv_nsec - start.tv_nsec;
- if (elapsed.tv_nsec < 0) {
- elapsed.tv_nsec += 1000000000;
- elapsed.tv_sec--;
- }
- printf("benchmarked %s:\t%ld.%09lds\n",
- s, elapsed.tv_sec, elapsed.tv_nsec);
-}
-
-int main(void)
-{
- benchmark("noop", noop_conversion);
- benchmark("magic", magic_conversion);
- benchmark("div", div_conversion);
- benchmark("mul", mul_conversion);
-
- return 0;
-}
diff --git a/tests/meson.build b/tests/meson.build
index 5efd6f7..40e3ab3 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -54,15 +54,6 @@ tests_protocol_c = custom_target(
output: 'tests-protocol.c'
)
-benchmark(
- 'fixed-benchmark',
- executable(
- 'fixed-benchmark',
- 'fixed-benchmark.c',
- dependencies: [ test_runner_dep, rt_dep ]
- )
-)
-
executable(
'exec-fd-leak-checker',
'exec-fd-leak-checker.c',