diff options
| author | ruki <[email protected]> | 2025-09-06 22:41:56 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2025-09-06 22:41:56 +0800 |
| commit | fc2b0dc9491ee838275c283b57fc316935471d4f (patch) | |
| tree | 093993a44aba341cd44cca54aefaab45503b2355 | |
| parent | 8d003d54d21714a893990e640ab6d9e711a092a5 (diff) | |
add config targets benchmark
| -rw-r--r-- | tests/benchmarks/config_targets/.gitignore | 8 | ||||
| -rw-r--r-- | tests/benchmarks/config_targets/CMakeLists.txt | 6 | ||||
| -rw-r--r-- | tests/benchmarks/config_targets/meson.build | 5 | ||||
| -rw-r--r-- | tests/benchmarks/config_targets/src/main.cpp | 6 | ||||
| -rw-r--r-- | tests/benchmarks/config_targets/test.lua | 28 | ||||
| -rw-r--r-- | tests/benchmarks/config_targets/xmake.lua | 7 |
6 files changed, 60 insertions, 0 deletions
diff --git a/tests/benchmarks/config_targets/.gitignore b/tests/benchmarks/config_targets/.gitignore new file mode 100644 index 000000000..152105761 --- /dev/null +++ b/tests/benchmarks/config_targets/.gitignore @@ -0,0 +1,8 @@ +# Xmake cache +.xmake/ +build/ + +# MacOS Cache +.DS_Store + + diff --git a/tests/benchmarks/config_targets/CMakeLists.txt b/tests/benchmarks/config_targets/CMakeLists.txt new file mode 100644 index 000000000..8a1c83c6d --- /dev/null +++ b/tests/benchmarks/config_targets/CMakeLists.txt @@ -0,0 +1,6 @@ +cmake_minimum_required(VERSION 3.10) +project(test) + +foreach(i RANGE 1 1000) + add_executable(test${i} src/main.cpp) +endforeach() diff --git a/tests/benchmarks/config_targets/meson.build b/tests/benchmarks/config_targets/meson.build new file mode 100644 index 000000000..d32292c79 --- /dev/null +++ b/tests/benchmarks/config_targets/meson.build @@ -0,0 +1,5 @@ +project('test', 'cpp') + +foreach i : range(1, 1001) + executable('test' + i.to_string(), 'src/main.cpp') +endforeach diff --git a/tests/benchmarks/config_targets/src/main.cpp b/tests/benchmarks/config_targets/src/main.cpp new file mode 100644 index 000000000..7c775d288 --- /dev/null +++ b/tests/benchmarks/config_targets/src/main.cpp @@ -0,0 +1,6 @@ +#include <iostream> + +int main(int argc, char** argv) { + std::cout << "hello world!" << std::endl; + return 0; +} diff --git a/tests/benchmarks/config_targets/test.lua b/tests/benchmarks/config_targets/test.lua new file mode 100644 index 000000000..66aec4ff1 --- /dev/null +++ b/tests/benchmarks/config_targets/test.lua @@ -0,0 +1,28 @@ +function test_config(t) + + -- xmake + os.tryrm("build") + local dt1 = os.mclock() + os.runv(os.programfile(), {"config", "-c"}) + dt1 = os.mclock() - dt1 + print("config targets/1k: xmake: %d ms", dt1) + + -- cmake + os.tryrm("build") + os.mkdir("build") + local dt2 = os.mclock() + os.runv("cmake", {"..", "-G", "Ninja"}, {curdir = "build"}) + dt2 = os.mclock() - dt2 + print("config targets/1k: cmake: %d ms", dt2) + + -- meson + os.tryrm("build") + local dt3 = os.mclock() + os.runv("meson", {"setup", "build"}) + dt3 = os.mclock() - dt3 + print("config targets/1k: meson: %d ms", dt3) + + t:require((dt2 > dt1) or (dt2 + 1000 > dt1)) + t:require((dt3 > dt1) or (dt3 + 1000 > dt1)) +end + diff --git a/tests/benchmarks/config_targets/xmake.lua b/tests/benchmarks/config_targets/xmake.lua new file mode 100644 index 000000000..39b394da3 --- /dev/null +++ b/tests/benchmarks/config_targets/xmake.lua @@ -0,0 +1,7 @@ +add_rules("mode.debug", "mode.release") + +for i = 1, 1000 do + target("test" .. i) + set_kind("binary") + add_files("src/main.cpp") +end |
