CommonMessaging - Improved inlining and branch predicition
This MR includes a minor change to CommonMessaging.h
designed to improve the runtime performance of CommonMessaging::setUpMessaging()
, which is quite heavily called, by making a few trivial changes.
- The method
CommonMessaging::setUpMessaging()
is split in two, moving the part that is infrequently called to a new private method. This makes the footprint ofCommonMessaging::setUpMessaging()
much smaller and consequently improves the likelihood of it being inlined. - I added an UNLIKELY( ) hint around the !m_commonMessagingReady to help the compiler better optimise the check branch prediction.
Together these MRs address a small performance regression I recently noticed, most likely due to !566 (merged). See the callgrind heat maps below for the cost of a given algorithm call, before and after the change.
Edited by Christopher Rob Jones
Merge request reports
Activity
Filter activity
- [2018-02-07 11:22] Validation started with lhcb-gaudi-merge#409
- [2018-02-08 00:04] Validation started with lhcb-gaudi-head-py3#58
- [2018-02-08 00:08] Validation started with lhcb-tdr-test#53
- [2018-02-08 00:09] Validation started with lhcb-gaudi-head#1751
- [2018-02-08 13:43] Validation started with lhcb-gaudi-head#1752
- [2018-02-09 00:05] Validation started with lhcb-gaudi-head-py3#59
- [2018-02-09 00:07] Validation started with lhcb-tdr-test#54
- [2018-02-09 00:13] Validation started with lhcb-gaudi-head#1753
- [2018-02-09 13:23] Validation started with lhcb-gaudi-head#1754
- [2018-02-09 17:15] Validation started with lhcb-gaudi-head#1755
- [2018-02-10 00:04] Validation started with lhcb-gaudi-head-py3#60
- [2018-02-10 00:07] Validation started with lhcb-tdr-test#55
- [2018-02-10 00:11] Validation started with lhcb-gaudi-head#1756
- [2018-02-10 16:54] Validation started with lhcb-gaudi-head#1757
- [2018-02-10 17:00] Validation started with lhcb-gaudi-head#1758
- [2018-02-10 18:05] Validation started with lhcb-gaudi-head#1759
- [2018-02-11 00:03] Validation started with lhcb-gaudi-head-py3#61
- [2018-02-11 00:06] Validation started with lhcb-tdr-test#56
- [2018-02-11 00:09] Validation started with lhcb-gaudi-head#1760
- [2018-02-11 10:17] Validation started with lhcb-gaudi-head#1761
- [2018-02-11 12:21] Validation started with lhcb-gaudi-head#1762
- [2018-02-11 16:37] Validation started with lhcb-gaudi-head#1763
- [2018-02-12 00:05] Validation started with lhcb-gaudi-head-py3#62
- [2018-02-12 00:06] Validation started with lhcb-tdr-test#57
- [2018-02-12 00:08] Validation started with lhcb-gaudi-head#1764
- [2018-02-12 15:36] Validation started with lhcb-gaudi-head#1765
- [2018-02-13 00:03] Validation started with lhcb-gaudi-head-py3#63
- [2018-02-13 00:09] Validation started with lhcb-gaudi-head#1766
- [2018-02-13 00:09] Validation started with lhcb-tdr-test#58
- [2018-02-13 09:11] Validation started with lhcb-gaudi-head#1767
- [2018-02-14 00:04] Validation started with lhcb-gaudi-head-py3#64
- [2018-02-14 00:09] Validation started with lhcb-gaudi-head#1768
- [2018-02-14 00:14] Validation started with lhcb-tdr-test#59
- [2018-02-15 00:05] Validation started with lhcb-gaudi-head-py3#65
- [2018-02-15 00:05] Validation started with lhcb-tdr-test#60
- [2018-02-15 00:07] Validation started with lhcb-gaudi-head#1769
- [2018-02-16 00:04] Validation started with lhcb-gaudi-head-py3#66
- [2018-02-16 00:04] Validation started with lhcb-tdr-test#61
- [2018-02-16 00:06] Validation started with lhcb-gaudi-head#1770
- [2018-02-17 00:03] Validation started with lhcb-gaudi-head-py3#67
- [2018-02-17 00:04] Validation started with lhcb-tdr-test#62
- [2018-02-17 00:13] Validation started with lhcb-gaudi-head#1771
- [2018-02-18 00:03] Validation started with lhcb-gaudi-head-py3#68
- [2018-02-18 00:06] Validation started with lhcb-tdr-test#63
- [2018-02-18 00:08] Validation started with lhcb-gaudi-head#1772
- [2018-02-18 00:47] Validation started with lhcb-tdr-test#63
- [2018-02-18 00:49] Validation started with lhcb-gaudi-head-py3#68
- [2018-02-18 01:02] Validation started with lhcb-gaudi-head#1772
- [2018-02-18 01:26] Validation started with lhcb-tdr-test#63
- [2018-02-18 01:45] Validation started with lhcb-gaudi-head-py3#68
- [2018-02-18 01:46] Validation started with lhcb-gaudi-head#1772
- [2018-02-19 00:03] Validation started with lhcb-gaudi-head-py3#69
- [2018-02-19 00:05] Validation started with lhcb-tdr-test#64
- [2018-02-19 00:13] Validation started with lhcb-gaudi-head#1773
- [2018-02-19 08:14] Validation started with lhcb-gaudi-head#1774
- [2018-02-20 00:04] Validation started with lhcb-gaudi-head-py3#70
- [2018-02-20 00:07] Validation started with lhcb-tdr-test#65
- [2018-02-20 00:10] Validation started with lhcb-gaudi-head#1775
- [2018-02-21 00:03] Validation started with lhcb-gaudi-head-py3#71
- [2018-02-21 00:06] Validation started with lhcb-tdr-test#66
- [2018-02-21 00:08] Validation started with lhcb-gaudi-head#1776
- [2018-02-22 01:03] Validation started with lhcb-gaudi-head-py3#72
- [2018-02-22 01:07] Validation started with lhcb-tdr-test#67
- [2018-02-22 01:08] Validation started with lhcb-gaudi-head#1777
- [2018-02-23 01:03] Validation started with lhcb-gaudi-head-py3#73
- [2018-02-23 01:06] Validation started with lhcb-tdr-test#68
- [2018-02-23 01:09] Validation started with lhcb-gaudi-head#1778
- [2018-02-24 01:03] Validation started with lhcb-gaudi-head-py3#74
- [2018-02-24 01:10] Validation started with lhcb-gaudi-head#1779
- [2018-02-24 01:15] Validation started with lhcb-tdr-test#69
- [2018-02-25 01:04] Validation started with lhcb-gaudi-head-py3#75
- [2018-02-25 01:06] Validation started with lhcb-tdr-test#70
- [2018-02-25 01:08] Validation started with lhcb-gaudi-head#1780
- [2018-02-26 01:03] Validation started with lhcb-gaudi-head-py3#76
- [2018-02-26 01:06] Validation started with lhcb-tdr-test#71
- [2018-02-26 01:09] Validation started with lhcb-gaudi-head#1781
- [2018-02-27 01:03] Validation started with lhcb-gaudi-head-py3#77
- [2018-02-27 01:07] Validation started with lhcb-tdr-test#72
- [2018-02-27 01:11] Validation started with lhcb-gaudi-head#1782
- [2018-02-28 01:03] Validation started with lhcb-gaudi-head-py3#78
- [2018-02-28 01:06] Validation started with lhcb-tdr-test#73
- [2018-02-28 01:12] Validation started with lhcb-gaudi-head#1783
- [2018-03-01 00:03] Validation started with lhcb-gaudi-head-py3#79
- [2018-03-01 00:05] Validation started with lhcb-tdr-test#74
- [2018-03-01 00:12] Validation started with lhcb-gaudi-head#1784
- [2018-03-01 13:04] Validation started with lhcb-upgrade-hackathon#40
- [2018-03-02 00:05] Validation started with lhcb-gaudi-head-py3#80
- [2018-03-02 00:05] Validation started with lhcb-upgrade-hackathon#41
- [2018-03-02 00:06] Validation started with lhcb-tdr-test#75
- [2018-03-02 00:09] Validation started with lhcb-gaudi-head#1785
- [2018-03-02 09:45] Validation started with lhcb-upgrade-hackathon#42
- [2018-03-03 00:03] Validation started with lhcb-gaudi-head-py3#81
- [2018-03-03 00:04] Validation started with lhcb-upgrade-hackathon#43
- [2018-03-03 00:05] Validation started with lhcb-tdr-test#76
- [2018-03-03 00:09] Validation started with lhcb-gaudi-head#1786
- [2018-03-03 09:56] Validation started with lhcb-gaudi-head#1787
- [2018-03-04 00:03] Validation started with lhcb-upgrade-hackathon#44
- [2018-03-04 00:04] Validation started with lhcb-gaudi-head-py3#82
- [2018-03-04 00:05] Validation started with lhcb-tdr-test#77
- [2018-03-04 00:06] Validation started with lhcb-gaudi-head#1788
- [2018-03-05 00:04] Validation started with lhcb-gaudi-head-py3#83
- [2018-03-05 00:08] Validation started with lhcb-upgrade-hackathon#45
- [2018-03-05 00:10] Validation started with lhcb-gaudi-head#1789
- [2018-03-05 00:10] Validation started with lhcb-tdr-test#78
- [2018-03-06 00:03] Validation started with lhcb-gaudi-head-py3#84
- [2018-03-06 00:03] Validation started with lhcb-upgrade-hackathon#46
- [2018-03-06 00:06] Validation started with lhcb-tdr-test#79
- [2018-03-06 00:08] Validation started with lhcb-gaudi-head#1790
- [2018-03-07 00:04] Validation started with lhcb-gaudi-head-py3#85
- [2018-03-07 00:05] Validation started with lhcb-upgrade-hackathon#47
- [2018-03-07 00:05] Validation started with lhcb-tdr-test#80
- [2018-03-07 00:12] Validation started with lhcb-gaudi-head#1791
- [2018-03-07 14:24] Validation started with lhcb-tdr-test#81
- [2018-03-08 00:03] Validation started with lhcb-upgrade-hackathon#48
- [2018-03-08 00:04] Validation started with lhcb-gaudi-head-py3#86
- [2018-03-08 00:05] Validation started with lhcb-tdr-test#82
- [2018-03-08 00:09] Validation started with lhcb-gaudi-head#1792
- [2018-03-09 00:05] Validation started with lhcb-gaudi-head-py3#87
- [2018-03-09 00:07] Validation started with lhcb-upgrade-hackathon#49
- [2018-03-09 00:07] Validation started with lhcb-tdr-test#83
- [2018-03-09 00:10] Validation started with lhcb-gaudi-head#1793
- [2018-03-10 00:04] Validation started with lhcb-upgrade-hackathon#50
- [2018-03-10 00:06] Validation started with lhcb-gaudi-head-py3#88
- [2018-03-10 00:08] Validation started with lhcb-tdr-test#84
- [2018-03-10 00:10] Validation started with lhcb-gaudi-head#1794
- [2018-03-10 00:46] Validation started with lhcb-tdr-test#84
- [2018-03-11 00:04] Validation started with lhcb-upgrade-hackathon#51
- [2018-03-11 00:06] Validation started with lhcb-gaudi-head-py3#89
- [2018-03-11 00:06] Validation started with lhcb-tdr-test#85
- [2018-03-11 00:10] Validation started with lhcb-gaudi-head#1795
- [2018-03-12 00:05] Validation started with lhcb-gaudi-head-py3#90
- [2018-03-12 00:06] Validation started with lhcb-upgrade-hackathon#52
- [2018-03-12 00:06] Validation started with lhcb-tdr-test#86
- [2018-03-12 00:15] Validation started with lhcb-gaudi-head#1796
- [2018-03-13 00:05] Validation started with lhcb-gaudi-head-py3#91
- [2018-03-13 00:06] Validation started with lhcb-upgrade-hackathon#53
- [2018-03-13 00:08] Validation started with lhcb-tdr-test#87
- [2018-03-13 00:09] Validation started with lhcb-gaudi-head#1797
- [2018-03-14 00:04] Validation started with lhcb-gaudi-head-py3#92
- [2018-03-14 00:04] Validation started with lhcb-upgrade-hackathon#54
- [2018-03-14 00:08] Validation started with lhcb-tdr-test#88
- [2018-03-14 00:10] Validation started with lhcb-gaudi-head#1798
- [2018-03-15 00:04] Validation started with lhcb-gaudi-head-py3#93
- [2018-03-15 00:07] Validation started with lhcb-tdr-test#89
- [2018-03-15 00:19] Validation started with lhcb-gaudi-head#1799
- [2018-03-16 00:04] Validation started with lhcb-gaudi-head-py3#94
- [2018-03-16 00:05] Validation started with lhcb-tdr-test#90
- [2018-03-16 00:07] Validation started with lhcb-gaudi-head#1800
- [2018-03-16 08:01] Validation started with lhcb-gaudi-head#1801
Edited by Software for LHCb- Resolved by Marco Clemencic
- Resolved by Marco Clemencic
added C++ framework label
added 9 commits
-
c3c21a5e...bcfd63db - 8 commits from branch
gaudi:master
- c7aed820 - Merge branch 'master' of ssh://gitlab.cern.ch:7999/gaudi/Gaudi into CommonMessaging-ImproveInlining
-
c3c21a5e...bcfd63db - 8 commits from branch
mentioned in merge request lhcb/Rec!889 (merged)
changed milestone to %v29r3
changed milestone to %v30r2
assigned to @leggett
added 28 commits
-
c7aed820...5746b2fc - 27 commits from branch
gaudi:master
- 0e1ef223 - Rework CommonMessaging::setUpMessaging() to improve runtime performance by…
-
c7aed820...5746b2fc - 27 commits from branch
Please register or sign in to reply