Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Note: for consistency, please take all measurements on rc20 and be sure to compile with DEBUG=no.

June 21, 2016

No Format
nopaneltrue
atomicIntCmpX               6.23ns         Atomic<int>::compareExchange
atomicIntInc                5.85ns         Atomic<int>::inc
atomicIntInc                5.84ns         std::atomic<int>::fetch_add
atomicIntLoad               0.56ns         Atomic<int>::load
atomicIntStore              0.56ns         Atomic<int>::store
atomicIntXchg               5.84ns         Atomic<int>::exchange
bMutexNoBlock              14.46ns         std::mutex lock/unlock (no blocking)
bufferAppendCopy1           8.09ns         appendCopy 1 byte to a buffer
bufferAppendCopy50          8.96ns         appendCopy 50 bytes to a buffer
bufferAppendCopy100         9.09ns         appendCopy 100 bytes to a buffer
bufferAppendCopy250        18.08ns         appendCopy 250 bytes to a buffer
bufferAppendCopy500        22.56ns         appendCopy 500 bytes to a buffer
bufferAppendExternal1       8.24ns         appendExternal 1 byte to a buffer
bufferAppendExternal50      7.87ns         appendExternal 50 bytes to a buffer
bufferAppendExternal100     7.95ns         appendExternal 100 bytes to a buffer
bufferAppendExternal250     7.79ns         appendExternal 250 bytes to a buffer
bufferAppendExternal500     7.72ns         appendExternal 500 bytes to a buffer
bufferBasic                11.13ns         buffer create, add one chunk, delete
bufferBasicAlloc           11.99ns         buffer create, alloc block in chunk, delete
bufferBasicCopy            12.00ns         buffer create, copy small block, delete
bufferCopy                 14.20ns         copy out 2 small chunks from buffer
bufferExtendChunk           4.56ns         buffer add onto existing chunk
bufferGetStart              3.34ns         Buffer::getStart
bufferConstruct             5.84ns         buffer stack allocation
bufferReset                 4.72ns         Buffer::reset
bufferCopyIterator2         6.67ns         buffer iterate over 2 copied chunks, accessing 1 byte each
bufferCopyIterator5         9.18ns         buffer iterate over 5 copied chunks, accessing 1 byte each
bufferExternalIterator2     9.06ns         buffer iterate over 2 external chunks, accessing 1 byte each
bufferExternalIterator5    23.24ns         buffer iterate over 5 external chunks, accessing 1 byte each
condPingPong                2.98us         std::condition_variable round-trip
cppAtomicExchg              5.83ns         Exchange method on a C++ atomic_int
cppAtomicLoad               0.65ns         Read a C++ atomic_int
cyclesToSeconds             6.13ns         Convert a rdtsc result to (double) seconds
cyclesToNanos               6.35ns         Convert a rdtsc result to (uint64_t) nanoseconds
dispatchPoll                9.21ns         Dispatch::poll (no timers or pollers)
div32                       4.72ns         32-bit integer division instruction
div64                      20.15ns         64-bit integer division instruction
functionCall                1.67ns         Call a function that has not been inlined
generateRandomNumber       16.56ns         Call to randomNumberGenerator(x)
genRandomString             1.49us         Generate a random 100-byte value
getThreadId                 1.95ns         Retrieve thread id via ThreadId::get
getThreadIdSyscall         41.15ns         Retrieve kernel thread id using syscall
hashTableLookup           124.09ns         Key lookup in a 1GB HashTable
hashTableLookupPf          73.98ns         Key lookup in a 1GB HashTable with prefetching
lfence                      2.92ns         Lfence instruction
lockInDispThrd              2.79ns         Acquire/release Dispatch::Lock (in dispatch thread)
lockNonDispThrd           279.30ns         Acquire/release Dispatch::Lock (non-dispatch thread)
mapCreate                  22.63ns         Create+delete entry in std::map
mapLookup                  16.02ns         Lookup in std::map<uint64_t, uint64_t>
memcpyCached100            14.55ns         memcpy 100 bytes with hot/fixed dst and src
memcpyCached1000           21.82ns         memcpy 1000 bytes with hot/fixed dst and src
memcpyCached10000         185.16ns         memcpy 10000 bytes with hot/fixed dst and src
memcpyCachedDst100         93.82ns         memcpy 100 bytes with hot/fixed dst and cold src
memcpyCachedDst1000       122.30ns         memcpy 1000 bytes with hot/fixed dst and cold src
memcpyCachedDst10000      355.23ns         memcpy 10000 bytes with hot/fixed dst and cold src
memcpyCold100             372.20ns         memcpy 100 bytes with cold dst and src
memcpyCold1000            655.00ns         memcpy 1000 bytes with cold dst and src
memcpyCold10000             3.18us         memcpy 10000 bytes with cold dst and src
murmur3                    10.28ns         128-bit MurmurHash3 (64-bit optimised) on 1 byte of data
murmur3                    49.72ns         128-bit MurmurHash3 hash (64-bit optimised) on 256 bytes of data
objectPoolAlloc            29.16ns         Cost of new allocations from an ObjectPool (no destroys)
objectPoolRealloc           4.48ns         Cost of ObjectPool allocation after destroying an object
pingConditionVar            1.56us         Round-trip ping with std::condition_variable
prefetch                   35.20ns         Prefetch instruction
rdtsc                       6.67ns         Read the fine-grain cycle counter
segmentEntrySort            8.14ms         Sort a Segment full of avg. 100-byte Objects by age
segmentIterator             1.97ms         Iterate a Segment full of avg. 100-byte Objects
sessionRefCount            12.55ns         Create/delete SessionRef
serialize                  55.34ns         cpuid instruction for serialize
sfence                      1.39ns         Sfence instruction
spinLock                   18.90ns         Acquire/release SpinLock
startStopTimer             56.46ns         Start and stop a Dispatch::Timer
spawnThread                 8.90us         Start and stop a thread
throwInt                    2.02us         Throw an int
throwIntNL                  2.48us         Throw an int in a function call
throwException              1.97us         Throw an Exception
throwExceptionNL            2.78us         Throw an Exception in a function call
throwSwitch                 6.05us         Throw an Exception using ClientException::throwException
timeTrace                  15.93ns         Record an event using TimeTrace
unorderedMapCreate         72.63ns         Create+delete entry in unordered_map
unorderedMapLookup         13.07ns         Lookup in std::unordered_map<uint64_t, uint64_t>
vectorPushPop               3.80ns         Push and pop a std::vector

June 9, 2014

No Format
atomicIntCmpX          6.21ns    Atomic<int>::compareExchange
atomicIntInc           5.98ns    Atomic<int>::inc
atomicIntLoad          0.56ns    Atomic<int>::load
atomicIntStore         0.56ns    Atomic<int>::store
atomicIntXchg          5.97ns    Atomic<int>::exchange
bMutexNoBlock         14.77ns    std::mutex lock/unlock (no blocking)
bufferBasic           11.42ns    buffer create, add one chunk, delete
bufferBasicAlloc      14.62ns    buffer create, alloc block in chunk, delete
bufferBasicCopy       13.24ns    buffer create, copy small block, delete
bufferCopy            14.76ns    copy out 2 small chunks from buffer
bufferExtendChunk      5.69ns    buffer add onto existing chunk
bufferGetStart         3.34ns    Buffer::getStart
bufferIterator        22.57ns    iterate over buffer with 5 chunks
condPingPong           4.04us    std::condition_variable round-trip
cppAtomicExchg         5.87ns    Exchange method on a C++ atomic_int
cppAtomicLoad         13.50ns    Read a C++ atomic_int
cyclesToSeconds        6.97ns    Convert a rdtsc result to (double) seconds
cyclesToNanos          9.75ns    Convert a rdtsc result to (uint64_t) nanoseconds
dispatchPoll           8.63ns    Dispatch::poll (no timers or pollers)
div32                  4.86ns    32-bit integer division instruction
div64                 20.30ns    64-bit integer division instruction
functionCall           1.95ns    Call a function that has not been inlined
getThreadId            2.24ns    Retrieve thread id via ThreadId::get
hashTableLookup      128.86ns    Key lookup in a 1GB HashTable
hashTableLookupPf     78.07ns    Key lookup in a 1GB HashTable with prefetching
lfence                 2.82ns    Lfence instruction
lockInDispThrd         4.06ns    Acquire/release Dispatch::Lock (in dispatch thread)
lockNonDispThrd      214.54ns    Acquire/release Dispatch::Lock (non-dispatch thread)
memcpy100              8.78ns    Copy 100 bytes with memcpy
memcpy1000            37.37ns    Copy 1000 bytes with memcpy
memcpy10000          191.07ns    Copy 10000 bytes with memcpy
murmur3               10.31ns    128-bit MurmurHash3 (64-bit optimised) on 1 byte of data
murmur3               40.47ns    128-bit MurmurHash3 hash (64-bit optimised) on 256 bytes of data
objectPoolAlloc       27.86ns    Cost of new allocations from an ObjectPool (no destroys)
objectPoolRealloc      4.65ns    Cost of ObjectPool allocation after destroying an object
prefetch              34.72ns    Prefetch instruction
rdtsc                  6.70ns    Read the fine-grain cycle counter
segmentEntrySort       7.02ms    Sort a Segment full of avg. 100-byte Objects by age
segmentIterator        1.83ms    Iterate a Segment full of avg. 100-byte Objects
sfence                 1.39ns    Sfence instruction
spinLock              16.17ns    Acquire/release SpinLock
startStopTimer        14.76ns    Start and stop a Dispatch::Timer
spawnThread            9.89us    Start and stop a thread
throwInt               1.91us    Throw an int
throwIntNL             2.60us    Throw an int in a function call
throwException         1.84us    Throw an Exception
throwExceptionNL       2.58us    Throw an Exception in a function call
throwSwitch            5.46us    Throw an Exception using ClientException::throwException
vectorPushPop          3.72ns    Push and pop a std::vector

...