Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 9d6cf2b

Browse files
committed
Use perf stat for timing
1 parent b5689b5 commit 9d6cf2b

File tree

1 file changed

+12
-11
lines changed

1 file changed

+12
-11
lines changed

benchmarks/Makefile

+12-11
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
N?=100
2+
TIME=perf stat --metric-only ./a.out 2>&1 | grep seconds | cut -d' ' -f8 | xargs echo
23

34
all: include.benchmark assert.benchmark test.benchmark suite.benchmark suite+assert.benchmark suite+assert+stl.benchmark
45
@make clean
@@ -8,19 +9,19 @@ ut: ut.suite+assert+stl.benchmark
89

910
%.benchmark: clean
1011
@time -f"$*:googletest %e" $(CXX) $(CXXFLAGS) -I googletest/include googletest/$*.cpp googletest/lib/libgtest_main.a googletest/lib/libgtest.a -lpthread
11-
@time -f"$*:googletest %e" ./a.out
12+
@$(TIME) $*:googletest
1213
@ls -l a.out | cut -d' ' -f6 | xargs echo "$*:googletest"
1314

1415
@time -f"$*:catch2 %e" $(CXX) $(CXXFLAGS) -I catch2/include catch2/$*.cpp
15-
@time -f"$*:catch2 %e" ./a.out
16+
@$(TIME) $*:catch2
1617
@ls -l a.out | cut -d' ' -f6 | xargs echo "$*:catch2"
1718

1819
@time -f"$*:doctest %e" $(CXX) $(CXXFLAGS) -I doctest/include doctest/$*.cpp
19-
@time -f"$*:doctest %e" ./a.out
20+
@$(TIME) $*:doctest
2021
@ls -l a.out | cut -d' ' -f6 | xargs echo "$*:doctest"
2122

2223
@time -f"$*:ut %e" $(CXX) $(CXXFLAGS) -I ut/include ut/$*.cpp
23-
@time -f"$*:ut %e" ./a.out
24+
@$(TIME) $*:ut
2425
@ls -l a.out | cut -d' ' -f6 | xargs echo "$*:ut"
2526

2627
suite.benchmark suite+assert.benchmark suite+assert+stl.benchmark:
@@ -30,25 +31,25 @@ suite.benchmark suite+assert.benchmark suite+assert+stl.benchmark:
3031
@make clean
3132
@for ((v=0; v<$(N); ++v)); do (echo '<% n=$(N); v=' $$v '%>' && cat googletest/$*.erb) | erb > googletest_suite_$$v.cpp; done
3233
@time -f"$*:googletest %e" make suite.compile.googletest
33-
@time -f"$*:googletest %e" ./a.out
34+
@$(TIME) $*:googletest
3435
@ls -l a.out | cut -d' ' -f6 | xargs echo "$*:googletest"
3536

3637
@make clean
3738
@for ((v=0; v<$(N); ++v)); do (echo '<% n=$(N); v=' $$v '%>' && cat catch2/$*.erb) | erb > catch2_suite_$$v.cpp; done
3839
@time -f"$*:catch2 %e" make suite.compile.catch2
39-
@time -f"$*:catch2 %e" ./a.out
40+
@$(TIME) $*:catch2
4041
@ls -l a.out | cut -d' ' -f6 | xargs echo "$*:catch2"
4142

4243
@make clean
4344
@for ((v=0; v<$(N); ++v)); do (echo '<% n=$(N); v=' $$v '%>' && cat doctest/$*.erb) | erb > doctest_suite_$$v.cpp; done
4445
@time -f"$*:doctest %e" make suite.compile.doctest
45-
@time -f"$*:doctest %e" ./a.out
46+
@$(TIME) $*:doctest
4647
@ls -l a.out | cut -d' ' -f6 | xargs echo "$*:doctest"
4748

4849
@make clean
4950
@for ((v=0; v<$(N); ++v)); do (echo '<% n=$(N); v=' $$v '%>' && cat ut/$*.erb) | erb > ut_suite_$$v.cpp; done
5051
@time -f"$*:ut %e" make suite.compile.ut
51-
@time -f"$*:ut %e" ./a.out
52+
@$(TIME) $*:ut
5253
@ls -l a.out | cut -d' ' -f6 | xargs echo "$*:ut"
5354

5455
suite.compile.googletest:
@@ -78,21 +79,21 @@ ut.header.%.benchmark:
7879
@make clean
7980
@for ((v=0; v<$(N); ++v)); do (echo '<% n=$(N); v=' $$v '%>' && cat ut/$*.header.erb) | erb > ut_suite_$$v.cpp; done
8081
@time -f"$*:ut.header %e" make suite.compile.ut
81-
@time -f"$*:ut.header %e" ./a.out
82+
@$(TIME) $*:ut.header
8283
@ls -l a.out | cut -d' ' -f6 | xargs echo "$*:ut.header"
8384

8485
ut.pch.%.benchmark:
8586
@make clean
8687
@for ((v=0; v<$(N); ++v)); do (echo '<% n=$(N); v=' $$v '%>' && cat ut/$*.pch.erb) | erb > ut_suite_$$v.cpp; done
8788
@time -f"$*:ut.pch %e" make suite.compile.ut.pch
88-
@time -f"$*:ut.pch %e" ./a.out
89+
@$(TIME) $*:ut.pch
8990
@ls -l a.out | cut -d' ' -f6 | xargs echo "$*:ut.pch"
9091

9192
ut.module.%.benchmark:
9293
@make clean
9394
@for ((v=0; v<$(N); ++v)); do (echo '<% n=$(N); v=' $$v '%>' && cat ut/$*.module.erb) | erb > ut_suite_$$v.cpp; done
9495
@time -f"$*:ut.module %e" make suite.compile.ut.module
95-
@time -f"$*:ut.module %e" ./a.out
96+
@$(TIME) $*:ut.module
9697
@ls -l a.out | cut -d' ' -f6 | xargs echo "$*:ut.module"
9798

9899
clean:

0 commit comments

Comments
 (0)