mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-10-25 06:22:15 +02:00
The main use of the performance test is to run it for two (or more) commits
and compare the results. Doing that manually, is cumbersome.
Add a (very hacky) script to help with that. For usage, see the comment
on top of the script.
Example:
# first:
meson build -Dprefix=/tmp/glib/ -Db_lto=true --buildtype release -Ddebug=true
# then:
GLIB_PERFORMANCE_FACTOR=17.06 \
PERF='perf stat -r 4 -B' \
PATCH="2.80.0..th/performance" \
COMMITS="2.79.3 2.80.0" \
/tmp/performance-run.sh -s 1 property-get property-set
This will build the requested $COMMITS and print something like:
...
>>> combined result > /tmp/glib-performance-output.all
Running test property-get
property-get: Property get per second: 35742719 37208288 (+4.1%)
Running test property-set
property-set: Property set per second: 32341232 36942399 (+14.2%)
Running test property-get
property-get: Property get per second: 36934401 37143479 (+0.566%)
Running test property-set
property-set: Property set per second: 38046387 38165548 (+0.313%)
Running test property-get
property-get: Property get per second: 34759576 36359761 (+4.6%)
Running test property-set
property-set: Property set per second: 35262505 37651733 (+6.78%)
Running test property-get
property-get: Property get per second: 37014537 32870906 (-11.2%)
Running test property-set
property-set: Property set per second: 36633026 38216846 (+4.32%)
Performance counter stats for './build/gobject/tests/performance/performance -s 1 property-get property-set' (4 runs):
1,312.18 msec task-clock:u # 1.000 CPUs utilized ( +- 4.82% )
0 context-switches:u # 0.000 /sec
0 cpu-migrations:u # 0.000 /sec
121 page-faults:u # 92.213 /sec ( +- 0.24% )
5,221,701,009 cycles:u # 3.979 GHz ( +- 2.61% )
19,035,814,175 instructions:u # 3.65 insn per cycle ( +- 0.00% )
4,335,306,010 branches:u # 3.304 G/sec ( +- 0.00% )
13,031 branch-misses:u # 0.00% of all branches ( +- 4.17% )
TopdownL1 # 10.3 % tma_backend_bound
# 5.3 % tma_bad_speculation
# 11.4 % tma_frontend_bound
# 73.1 % tma_retiring ( +- 2.15% )
[1] 1.3127 +- 0.0634 seconds time elapsed ( +- 4.83% )
[2] 1.2631 +- 0.0253 seconds time elapsed ( +- 2.00% )
property-get: Property get per second: 35742719 , 36934401 , 34759576 , 37014537 ; 37208288 , 37143479 , 36359761 , 32870906 ;
property-set: Property set per second: 32341232 , 38046387 , 35262505 , 36633026 ; 36942399 , 38165548 , 37651733 , 38216846 ;