Skip to content

Instantly share code, notes, and snippets.

@Bulat-Ziganshin
Created July 29, 2016 00:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Bulat-Ziganshin/c8fa0bac412fba03e54fb0183659a384 to your computer and use it in GitHub Desktop.
Save Bulat-Ziganshin/c8fa0bac412fba03e54fb0183659a384 to your computer and use it in GitHub Desktop.
Example of measuring small time intervals by out-of-order RDTSC instruction. Just compare values produced by the 2 successive runs.
C:\!FreeArc\public\FARSH\SMHasher>a xxh64
-------------------------------------------------------------------------------
--- Testing XXH64 (xxHash, 64-bit result) --- Testing XXH64 (xxHash, 64-bit result)
[[[ Speed Tests ]]] [[[ Speed Tests ]]]
Bulk speed test - 262144-byte keys Bulk speed test - 262144-byte keys
Alignment 0 - 4.441 bytes/cycle - 12706.75 MiB/sec @ 3 ghz Alignment 0 - 3.516 bytes/cycle - 10058.15 MiB/sec @ 3 ghz
Alignment 1 - 4.408 bytes/cycle - 12610.07 MiB/sec @ 3 ghz Alignment 1 - 4.390 bytes/cycle - 12559.72 MiB/sec @ 3 ghz
Alignment 2 - 4.409 bytes/cycle - 12615.03 MiB/sec @ 3 ghz Alignment 2 - 4.397 bytes/cycle - 12579.50 MiB/sec @ 3 ghz
Alignment 3 - 4.407 bytes/cycle - 12607.33 MiB/sec @ 3 ghz Alignment 3 - 4.345 bytes/cycle - 12431.36 MiB/sec @ 3 ghz
Alignment 4 - 4.408 bytes/cycle - 12610.72 MiB/sec @ 3 ghz Alignment 4 - 4.382 bytes/cycle - 12537.98 MiB/sec @ 3 ghz
Alignment 5 - 3.582 bytes/cycle - 10247.96 MiB/sec @ 3 ghz Alignment 5 - 4.372 bytes/cycle - 12509.02 MiB/sec @ 3 ghz
Alignment 6 - 4.424 bytes/cycle - 12657.71 MiB/sec @ 3 ghz Alignment 6 - 4.397 bytes/cycle - 12578.92 MiB/sec @ 3 ghz
Alignment 7 - 4.433 bytes/cycle - 12682.79 MiB/sec @ 3 ghz Alignment 7 - 4.381 bytes/cycle - 12533.25 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 25.33 cycles/hash Small key speed test - 1-byte keys - 28.79 cycles/hash
Small key speed test - 2-byte keys - 27.83 cycles/hash Small key speed test - 2-byte keys - 31.37 cycles/hash
Small key speed test - 3-byte keys - 51.06 cycles/hash Small key speed test - 3-byte keys - 33.81 cycles/hash
Small key speed test - 4-byte keys - 49.48 cycles/hash Small key speed test - 4-byte keys - 28.48 cycles/hash
Small key speed test - 5-byte keys - 28.72 cycles/hash Small key speed test - 5-byte keys - 34.73 cycles/hash
Small key speed test - 6-byte keys - 31.07 cycles/hash Small key speed test - 6-byte keys - 37.78 cycles/hash
Small key speed test - 7-byte keys - 39.00 cycles/hash Small key speed test - 7-byte keys - 39.10 cycles/hash
Small key speed test - 8-byte keys - 31.09 cycles/hash Small key speed test - 8-byte keys - 33.78 cycles/hash
Small key speed test - 9-byte keys - 37.40 cycles/hash Small key speed test - 9-byte keys - 29.86 cycles/hash
Small key speed test - 10-byte keys - 41.43 cycles/hash Small key speed test - 10-byte keys - 68.92 cycles/hash
Small key speed test - 11-byte keys - 34.74 cycles/hash Small key speed test - 11-byte keys - 63.86 cycles/hash
Small key speed test - 12-byte keys - 36.69 cycles/hash Small key speed test - 12-byte keys - 41.97 cycles/hash
Small key speed test - 13-byte keys - 35.36 cycles/hash Small key speed test - 13-byte keys - 35.38 cycles/hash
Small key speed test - 14-byte keys - 46.20 cycles/hash Small key speed test - 14-byte keys - 71.14 cycles/hash
Small key speed test - 15-byte keys - 47.25 cycles/hash Small key speed test - 15-byte keys - 39.09 cycles/hash
Small key speed test - 16-byte keys - 29.59 cycles/hash Small key speed test - 16-byte keys - 29.61 cycles/hash
Small key speed test - 17-byte keys - 41.85 cycles/hash Small key speed test - 17-byte keys - 41.49 cycles/hash
Small key speed test - 18-byte keys - 44.95 cycles/hash Small key speed test - 18-byte keys - 45.35 cycles/hash
Small key speed test - 19-byte keys - 38.18 cycles/hash Small key speed test - 19-byte keys - 46.68 cycles/hash
Small key speed test - 20-byte keys - 42.13 cycles/hash Small key speed test - 20-byte keys - 69.18 cycles/hash
Small key speed test - 21-byte keys - 37.68 cycles/hash Small key speed test - 21-byte keys - 45.66 cycles/hash
Small key speed test - 22-byte keys - 41.49 cycles/hash Small key speed test - 22-byte keys - 41.49 cycles/hash
Small key speed test - 23-byte keys - 50.71 cycles/hash Small key speed test - 23-byte keys - 50.96 cycles/hash
Small key speed test - 24-byte keys - 37.56 cycles/hash Small key speed test - 24-byte keys - 37.98 cycles/hash
Small key speed test - 25-byte keys - 35.26 cycles/hash Small key speed test - 25-byte keys - 35.27 cycles/hash
Small key speed test - 26-byte keys - 72.73 cycles/hash Small key speed test - 26-byte keys - 46.14 cycles/hash
Small key speed test - 27-byte keys - 77.05 cycles/hash Small key speed test - 27-byte keys - 38.86 cycles/hash
Small key speed test - 28-byte keys - 67.96 cycles/hash Small key speed test - 28-byte keys - 36.00 cycles/hash
Small key speed test - 29-byte keys - 47.71 cycles/hash Small key speed test - 29-byte keys - 39.08 cycles/hash
Small key speed test - 30-byte keys - 51.03 cycles/hash Small key speed test - 30-byte keys - 51.51 cycles/hash
Small key speed test - 31-byte keys - 51.66 cycles/hash Small key speed test - 31-byte keys - 52.60 cycles/hash
Small key speed test - 32-byte keys - 48.54 cycles/hash Small key speed test - 32-byte keys - 43.60 cycles/hash
Small key speed test - 33-byte keys - 51.88 cycles/hash Small key speed test - 33-byte keys - 52.23 cycles/hash
Small key speed test - 34-byte keys - 54.69 cycles/hash Small key speed test - 34-byte keys - 54.87 cycles/hash
Small key speed test - 35-byte keys - 46.01 cycles/hash Small key speed test - 35-byte keys - 55.25 cycles/hash
Small key speed test - 36-byte keys - 83.88 cycles/hash Small key speed test - 36-byte keys - 52.45 cycles/hash
Small key speed test - 37-byte keys - 57.32 cycles/hash Small key speed test - 37-byte keys - 56.85 cycles/hash
Small key speed test - 38-byte keys - 60.41 cycles/hash Small key speed test - 38-byte keys - 59.87 cycles/hash
Small key speed test - 39-byte keys - 60.07 cycles/hash Small key speed test - 39-byte keys - 60.38 cycles/hash
Small key speed test - 40-byte keys - 56.38 cycles/hash Small key speed test - 40-byte keys - 111.87 cycles/hash
Small key speed test - 41-byte keys - 60.18 cycles/hash Small key speed test - 41-byte keys - 85.36 cycles/hash
Small key speed test - 42-byte keys - 63.55 cycles/hash Small key speed test - 42-byte keys - 64.35 cycles/hash
Small key speed test - 43-byte keys - 63.70 cycles/hash Small key speed test - 43-byte keys - 63.94 cycles/hash
Small key speed test - 44-byte keys - 57.85 cycles/hash Small key speed test - 44-byte keys - 57.92 cycles/hash
Small key speed test - 45-byte keys - 62.27 cycles/hash Small key speed test - 45-byte keys - 62.35 cycles/hash
Small key speed test - 46-byte keys - 63.79 cycles/hash Small key speed test - 46-byte keys - 63.79 cycles/hash
Small key speed test - 47-byte keys - 64.92 cycles/hash Small key speed test - 47-byte keys - 64.56 cycles/hash
Small key speed test - 48-byte keys - 46.32 cycles/hash Small key speed test - 48-byte keys - 56.95 cycles/hash
Small key speed test - 49-byte keys - 60.91 cycles/hash Small key speed test - 49-byte keys - 61.16 cycles/hash
Small key speed test - 50-byte keys - 62.53 cycles/hash Small key speed test - 50-byte keys - 62.28 cycles/hash
Small key speed test - 51-byte keys - 63.46 cycles/hash Small key speed test - 51-byte keys - 62.93 cycles/hash
Small key speed test - 52-byte keys - 59.93 cycles/hash Small key speed test - 52-byte keys - 60.15 cycles/hash
Small key speed test - 53-byte keys - 64.32 cycles/hash Small key speed test - 53-byte keys - 64.53 cycles/hash
Small key speed test - 54-byte keys - 123.82 cycles/hash Small key speed test - 54-byte keys - 67.16 cycles/hash
Small key speed test - 55-byte keys - 99.82 cycles/hash Small key speed test - 55-byte keys - 68.29 cycles/hash
Small key speed test - 56-byte keys - 56.30 cycles/hash Small key speed test - 56-byte keys - 56.21 cycles/hash
Small key speed test - 57-byte keys - 60.17 cycles/hash Small key speed test - 57-byte keys - 61.21 cycles/hash
Small key speed test - 58-byte keys - 63.55 cycles/hash Small key speed test - 58-byte keys - 63.54 cycles/hash
Small key speed test - 59-byte keys - 64.05 cycles/hash Small key speed test - 59-byte keys - 64.88 cycles/hash
Small key speed test - 60-byte keys - 48.41 cycles/hash Small key speed test - 60-byte keys - 58.87 cycles/hash
Small key speed test - 61-byte keys - 62.67 cycles/hash Small key speed test - 61-byte keys - 63.11 cycles/hash
Small key speed test - 62-byte keys - 68.28 cycles/hash Small key speed test - 62-byte keys - 67.74 cycles/hash
Small key speed test - 63-byte keys - 69.99 cycles/hash Small key speed test - 63-byte keys - 116.56 cycles/hash
Small key speed test - 64-byte keys - 37.93 cycles/hash Small key speed test - 64-byte keys - 88.28 cycles/hash
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment