...
Note: for consistency, please take all measurements on rc20 and be sure to compile with DEBUG=no
.
June 21, 2016
No Format | ||
---|---|---|
| ||
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 |
...