Subject: |
Re: [Merge] lp:~epics-core/epics-base/epicsR3.15-atomics into lp:epics-base |
From: |
Jeff Hill <[email protected]> |
To: |
Jeff Hill <[email protected]> |
Date: |
Fri, 02 Sep 2011 17:08:08 -0000 |
During testing I do see an unusual performance anomaly. It seems that the gcc memory barrier intrinsic functions performance is maybe too good to be true on linux-x86 and linux-686 (see epicsAtomicSet performance below)
On RHEL linux-x86:
[hill@lcssvr5 test]$ O.linux-x86/epicsAtomicPerform
# epicsAtomicSet of "i" takes 0.000678 microseconds
# epicsAtomicSet of "j" takes 0.000425 microseconds
# epicsAtomicSet of "Pv" takes 0.000524 microseconds
# raw incr of "i" and a NOOP function call takes 0.002669 microseconds
# raw incr of "j" and a NOOP function call takes 0.002671 microseconds
# epicsAtomicIncr "i" takes 0.039754 microseconds
# epicsAtomicIncr "j" takes 0.039736 microseconds
# epicsAtomicCmpAndSwap of "i" takes 0.039187 microseconds
# epicsAtomicCmpAndSwap of "j" takes 0.039140 microseconds
# epicsAtomicCmpAndSwap of "Pv" takes 0.039124 microseconds
# retOwnership() takes 0.082530 microseconds
# passRefOwnership() takes 0.164766 microseconds
Results
=======
Tests: 0
On RHEL linux-686:
[hill@lcssvr5 test]$ O.linux-x86/epicsAtomicPerform
# epicsAtomicSet of "i" takes 0.000768 microseconds
# epicsAtomicSet of "j" takes 0.000619 microseconds
# epicsAtomicSet of "Pv" takes 0.000597 microseconds
# raw incr of "i" and a NOOP function call takes 0.002676 microseconds
# raw incr of "j" and a NOOP function call takes 0.002668 microseconds
# epicsAtomicIncr "i" takes 0.008333 microseconds
# epicsAtomicIncr "j" takes 0.008418 microseconds
# epicsAtomicCmpAndSwap of "i" takes 0.008344 microseconds
# epicsAtomicCmpAndSwap of "j" takes 0.008332 microseconds
# epicsAtomicCmpAndSwap of "Pv" takes 0.008556 microseconds
# retOwnership() takes 0.016959 microseconds
# passRefOwnership() takes 0.033468 microseconds
Results
=======
Tests: 0
On win32-x86-mingw (using gcc memory barriers / windows OS atomics):
C:\hill\epicsInBazaar\epicsR3.15-atomics\trunk\src\libCom\test>O.win32-x86-mingw\epicsAtomicPerform
# epicsAtomicSet of "i" takes 0.006438 microseconds
# epicsAtomicSet of "j" takes 0.006298 microseconds
# epicsAtomicSet of "Pv" takes 0.006294 microseconds
# raw incr of "i" and a NOOP function call takes 0.001606 microseconds
# raw incr of "j" and a NOOP function call takes 0.001604 microseconds
# epicsAtomicIncr "i" takes 0.008752 microseconds
# epicsAtomicIncr "j" takes 0.008751 microseconds
# epicsAtomicCmpAndSwap of "i" takes 0.008752 microseconds
# epicsAtomicCmpAndSwap of "j" takes 0.008756 microseconds
# epicsAtomicCmpAndSwap of "Pv" takes 0.008752 microseconds
# retOwnership() takes 0.017703 microseconds
# passRefOwnership() takes 0.035162 microseconds
Results
=======
Tests: 0
On win32-686-mingw (using gcc memory barriers / gcc intrinsic atomics):
# epicsAtomicSet of "i" takes 0.006333 microseconds
# epicsAtomicSet of "j" takes 0.006294 microseconds
# epicsAtomicSet of "Pv" takes 0.006312 microseconds
# raw incr of "i" and a NOOP function call takes 0.001497 microseconds
# raw incr of "j" and a NOOP function call takes 0.001498 microseconds
# epicsAtomicIncr "i" takes 0.006265 microseconds
# epicsAtomicIncr "j" takes 0.006260 microseconds
# epicsAtomicCmpAndSwap of "i" takes 0.006575 microseconds
# epicsAtomicCmpAndSwap of "j" takes 0.006576 microseconds
# epicsAtomicCmpAndSwap of "Pv" takes 0.006582 microseconds
# retOwnership() takes 0.012689 microseconds
# passRefOwnership() takes 0.025254 microseconds
Results
=======
Tests: 0
--
https://code.launchpad.net/~epics-core/epics-base/epicsR3.15-atomics/+merge/73613
Your team EPICS Core Developers is subscribed to branch lp:~epics-core/epics-base/3.15-buildCompilerSpecific.
- References:
- [Merge] lp:~epics-core/epics-base/epicsR3.15-atomics into lp:epics-base Jeff Hill
- Navigate by Date:
- Prev:
Re: [Merge] lp:~epics-core/epics-base/epicsR3.15-atomics into lp:epics-base Jeff Hill
- Next:
Re: [Merge] lp:~epics-core/epics-base/epicsR3.15-atomics into lp:epics-base Andrew Johnson
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
<2011>
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: [Merge] lp:~epics-core/epics-base/epicsR3.15-atomics into lp:epics-base Jeff Hill
- Next:
Re: [Merge] lp:~epics-core/epics-base/epicsR3.15-atomics into lp:epics-base Andrew Johnson
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
<2011>
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|