Repository: gpakosz/PackedArray Branch: master Commit: a4cffc21a76f Files: 39 Total size: 862.6 KB Directory structure: gitextract_wmqt4bm2/ ├── .gitattributes ├── .gitignore ├── .travis.yml ├── LICENSE ├── PackedArray.c ├── PackedArray.h ├── PackedArraySIMD.c ├── README.md ├── _gnu-make/ │ └── Makefile ├── _ios-xcode/ │ ├── .gitignore │ ├── PackedArray-Info.plist │ └── PackedArray.xcodeproj/ │ ├── project.pbxproj │ └── project.xcworkspace/ │ └── contents.xcworkspacedata ├── _mac-xcode/ │ ├── .gitignore │ └── PackedArray.xcodeproj/ │ ├── project.pbxproj │ └── project.xcworkspace/ │ └── contents.xcworkspacedata ├── _win-vs11/ │ ├── .gitignore │ ├── Common.props │ ├── Debug.props │ ├── PackedArray.sln │ ├── PackedArraySIMDSelfBench.vcxproj │ ├── PackedArraySIMDSelfTest.vcxproj │ ├── PackedArraySelfBench.vcxproj │ ├── PackedArraySelfTest.vcxproj │ ├── Release.props │ ├── x64.props │ └── x86.props └── benchmark/ ├── PackedArraySIMDSelfBench-unrolled-galaxy-note-cortex-a9-1.4GHz.txt ├── PackedArraySIMDSelfBench-unrolled-ipad2-cortex-a9-1GHz.txt ├── PackedArraySIMDSelfBench-unrolled-iphone5-a6-1.3GHz.txt ├── PackedArraySIMDSelfBench-unrolled-mbp-corei7-M620-2.67GHz.txt ├── PackedArraySelfBench-reference-galaxy-note-cortex-a9-1.4GHz.txt ├── PackedArraySelfBench-reference-ipad2-cortex-a9-1GHz.txt ├── PackedArraySelfBench-reference-iphone5-a6-1.3GHz.txt ├── PackedArraySelfBench-reference-mbp-corei7-M620-2.67GHz.txt ├── PackedArraySelfBench-unrolled-galaxy-note-cortex-a9-1.4GHz.txt ├── PackedArraySelfBench-unrolled-ipad2-cortex-a9-1GHz.txt ├── PackedArraySelfBench-unrolled-iphone5-a6-1.3GHz.txt └── PackedArraySelfBench-unrolled-mbp-corei7-M620-2.67GHz.txt ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitattributes ================================================ * text=auto # sources *.h text diff=cpp *.c text diff=cpp *.cpp text diff=cpp *.rb text diff=ruby *.html text diff=html *.m text diff=objc # shell scripts *.sh eol=lf # GNU Makefile Makefile text eol=lf # Autotools *.am text eol=lf # Android *.mk text eol=lf # Xcode files *.pbxproj text eol=lf merge=union # Visual Studio files *.sln text eol=crlf merge=union *.vcxproj text eol=crlf merge=union *.vcxproj.filters text eol=crlf merge=union *.props text eol=crlf ================================================ FILE: .gitignore ================================================ .DS_Store *~ *.swp /bin PackedArray.pp.c PackedArray.cut.c PackedArraySIMD.pp.c PackedArraySIMD.cut.c ================================================ FILE: .travis.yml ================================================ language: cpp compiler: - clang - gcc env: - TARGET=build - TARGET=test - TARGET=preprocess - TARGET=cut - TARGET=assembly script: make -j -C ./_gnu-make $TARGET ================================================ FILE: LICENSE ================================================ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE Version 2, December 2004 Copyright (C) 2004 Sam Hocevar Everyone is permitted to copy and distribute verbatim or modified copies of this license document, and changing it is allowed as long as the name is changed. DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. You just DO WHAT THE FUCK YOU WANT TO. 1. Bla bla bla 2. Montesqieu et camembert, vive la France, zut alors! ================================================ FILE: PackedArray.c ================================================ // see README.md for usage instructions. // (‑●‑●)> released under the WTFPL v2 license, by Gregory Pakosz (@gpakosz) #ifndef PACKEDARRAY_SELF #define PACKEDARRAY_SELF "PackedArray.c" #endif #ifdef PACKEDARRAY_IMPL #ifndef PACKEDARRAY_JOIN #define PACKEDARRAY_JOIN(lhs, rhs) PACKEDARRAY_JOIN_(lhs, rhs) #define PACKEDARRAY_JOIN_(lhs, rhs) PACKEDARRAY_JOIN__(lhs, rhs) #define PACKEDARRAY_JOIN__(lhs, rhs) lhs##rhs #endif // #ifndef PACKEDARRAY_JOIN #ifndef PACKEDARRAY_IMPL_BITS_PER_ITEM #error PACKEDARRAY_IMPL_BITS_PER_ITEM undefined #endif // #ifndef PACKEDARRAY_IMPL_BITS_PER_ITEM #if defined(PACKEDARRAY_IMPL_PACK_CASES) || defined(PACKEDARRAY_IMPL_UNPACK_CASES) #ifndef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 0 #elif PACKEDARRAY_IMPL_CASE_I == 0 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 1 #elif PACKEDARRAY_IMPL_CASE_I == 1 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 2 #elif PACKEDARRAY_IMPL_CASE_I == 2 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 3 #elif PACKEDARRAY_IMPL_CASE_I == 3 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 4 #elif PACKEDARRAY_IMPL_CASE_I == 4 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 5 #elif PACKEDARRAY_IMPL_CASE_I == 5 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 6 #elif PACKEDARRAY_IMPL_CASE_I == 6 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 7 #elif PACKEDARRAY_IMPL_CASE_I == 7 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 8 #elif PACKEDARRAY_IMPL_CASE_I == 8 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 9 #elif PACKEDARRAY_IMPL_CASE_I == 9 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 10 #elif PACKEDARRAY_IMPL_CASE_I == 10 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 11 #elif PACKEDARRAY_IMPL_CASE_I == 11 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 12 #elif PACKEDARRAY_IMPL_CASE_I == 12 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 13 #elif PACKEDARRAY_IMPL_CASE_I == 13 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 14 #elif PACKEDARRAY_IMPL_CASE_I == 14 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 15 #elif PACKEDARRAY_IMPL_CASE_I == 15 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 16 #elif PACKEDARRAY_IMPL_CASE_I == 16 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 17 #elif PACKEDARRAY_IMPL_CASE_I == 17 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 18 #elif PACKEDARRAY_IMPL_CASE_I == 18 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 19 #elif PACKEDARRAY_IMPL_CASE_I == 19 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 20 #elif PACKEDARRAY_IMPL_CASE_I == 20 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 21 #elif PACKEDARRAY_IMPL_CASE_I == 21 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 22 #elif PACKEDARRAY_IMPL_CASE_I == 22 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 23 #elif PACKEDARRAY_IMPL_CASE_I == 23 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 24 #elif PACKEDARRAY_IMPL_CASE_I == 24 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 25 #elif PACKEDARRAY_IMPL_CASE_I == 25 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 26 #elif PACKEDARRAY_IMPL_CASE_I == 26 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 27 #elif PACKEDARRAY_IMPL_CASE_I == 27 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 28 #elif PACKEDARRAY_IMPL_CASE_I == 28 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 29 #elif PACKEDARRAY_IMPL_CASE_I == 29 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 30 #elif PACKEDARRAY_IMPL_CASE_I == 30 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 31 #elif PACKEDARRAY_IMPL_CASE_I == 31 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 32 #endif // #ifndef PACKEDARRAY_IMPL_CASE_I #ifndef PACKEDARRAY_IMPL_BITS_AVAILABLE #define PACKEDARRAY_IMPL_BITS_AVAILABLE (32 - ((PACKEDARRAY_IMPL_CASE_I * PACKEDARRAY_IMPL_BITS_PER_ITEM) % 32)) #endif #ifndef PACKEDARRAY_IMPL_START_BIT #define PACKEDARRAY_IMPL_START_BIT ((PACKEDARRAY_IMPL_CASE_I * PACKEDARRAY_IMPL_BITS_PER_ITEM) % 32) #endif #ifndef PACKEDARRAY_IMPL_MASK #define PACKEDARRAY_IMPL_MASK (uint32_t)((1ULL << PACKEDARRAY_IMPL_BITS_PER_ITEM) - 1) #endif #if defined(PACKEDARRAY_IMPL_PACK_CASES) #ifndef PACKEDARRAY_IMPL_PACK_CASE_BREAK #define PACKEDARRAY_IMPL_PACK_CASE_BREAK #endif case PACKEDARRAY_IMPL_CASE_I: #if (PACKEDARRAY_IMPL_BITS_PER_ITEM <= PACKEDARRAY_IMPL_BITS_AVAILABLE) packed |= *in++ << PACKEDARRAY_IMPL_START_BIT; #if (PACKEDARRAY_IMPL_BITS_PER_ITEM == PACKEDARRAY_IMPL_BITS_AVAILABLE) *out++ = packed; packed = 0; #endif #else packed |= *in << PACKEDARRAY_IMPL_START_BIT; *out++ = packed; packed = *in++ >> PACKEDARRAY_IMPL_BITS_AVAILABLE; #endif PACKEDARRAY_IMPL_PACK_CASE_BREAK #if PACKEDARRAY_IMPL_CASE_I < 31 #include PACKEDARRAY_SELF #else #undef PACKEDARRAY_IMPL_CASE_I #undef PACKEDARRAY_IMPL_PACK_CASE_BREAK #undef PACKEDARRAY_IMPL_PACK_CASES #endif #elif defined(PACKEDARRAY_IMPL_UNPACK_CASES) // #if defined(PACKEDARRAY_IMPL_PACK_CASES) #ifndef PACKEDARRAY_IMPL_UNPACK_CASE_BREAK #define PACKEDARRAY_IMPL_UNPACK_CASE_BREAK #endif case PACKEDARRAY_IMPL_CASE_I: #if (PACKEDARRAY_IMPL_BITS_PER_ITEM <= PACKEDARRAY_IMPL_BITS_AVAILABLE) *out++ = (packed >> PACKEDARRAY_IMPL_START_BIT) & PACKEDARRAY_IMPL_MASK; PACKEDARRAY_IMPL_UNPACK_CASE_BREAK #if (PACKEDARRAY_IMPL_CASE_I < 31) && (PACKEDARRAY_IMPL_BITS_PER_ITEM == PACKEDARRAY_IMPL_BITS_AVAILABLE) packed = *++in; #endif #else { uint32_t low, high; low = packed >> PACKEDARRAY_IMPL_START_BIT; packed = *++in; high = packed << PACKEDARRAY_IMPL_BITS_AVAILABLE; *out++ = (low | high) & PACKEDARRAY_IMPL_MASK; } PACKEDARRAY_IMPL_UNPACK_CASE_BREAK #endif #if PACKEDARRAY_IMPL_CASE_I < 31 #include PACKEDARRAY_SELF #else #undef PACKEDARRAY_IMPL_CASE_I #undef PACKEDARRAY_IMPL_UNPACK_CASE_BREAK #undef PACKEDARRAY_IMPL_UNPACK_CASES #endif #endif // #elif defined(PACKEDARRAY_IMPL_UNPACK_CASES) #else // #if defined(PACKEDARRAY_IMPL_PACK_CASES) || defined(PACKEDARRAY_IMPL_UNPACK_CASES) void PACKEDARRAY_JOIN(__PackedArray_pack_, PACKEDARRAY_IMPL_BITS_PER_ITEM)(uint32_t* __restrict out, uint32_t offset, const uint32_t* __restrict in, uint32_t count) { uint32_t startBit; uint32_t packed; const uint32_t* __restrict end; out += ((uint64_t)offset * (uint64_t)PACKEDARRAY_IMPL_BITS_PER_ITEM) / 32; startBit = ((uint64_t)offset * (uint64_t)PACKEDARRAY_IMPL_BITS_PER_ITEM) % 32; packed = *out & (uint32_t)((1ULL << startBit) - 1); offset = offset % 32; if (count >= 32 - offset) { int32_t n; n = (count + offset) / 32; count -= 32 * n - offset; switch (offset) { do { #define PACKEDARRAY_IMPL_PACK_CASES #include PACKEDARRAY_SELF } while (--n > 0); } if (count == 0) return; offset = 0; startBit = 0; } end = in + count; switch (offset) { #define PACKEDARRAY_IMPL_PACK_CASES #define PACKEDARRAY_IMPL_PACK_CASE_BREAK \ if (in == end)\ break; #include PACKEDARRAY_SELF } PACKEDARRAY_ASSERT(in == end); if ((count * PACKEDARRAY_IMPL_BITS_PER_ITEM + startBit) % 32) { packed |= *out & ~((uint32_t)(1ULL << ((((uint64_t)count * (uint64_t)PACKEDARRAY_IMPL_BITS_PER_ITEM + startBit - 1) % 32) + 1)) - 1); *out = packed; } } void PACKEDARRAY_JOIN(__PackedArray_unpack_, PACKEDARRAY_IMPL_BITS_PER_ITEM)(const uint32_t* __restrict in, uint32_t offset, uint32_t* __restrict out, uint32_t count) { uint32_t packed; const uint32_t* __restrict end; in += ((uint64_t)offset * (uint64_t)PACKEDARRAY_IMPL_BITS_PER_ITEM) / 32; packed = *in; offset = offset % 32; if (count >= 32 - offset) { int32_t n; n = (count + offset) / 32; count -= 32 * n - offset; switch (offset) { do { packed = *++in; #define PACKEDARRAY_IMPL_UNPACK_CASES #include PACKEDARRAY_SELF } while (--n > 0); } if (count == 0) return; packed = *++in; offset = 0; } end = out + count; switch (offset) { #define PACKEDARRAY_IMPL_UNPACK_CASES #define PACKEDARRAY_IMPL_UNPACK_CASE_BREAK \ if (out == end)\ break; #include PACKEDARRAY_SELF } PACKEDARRAY_ASSERT(out == end); } #undef PACKEDARRAY_IMPL_BITS_PER_ITEM #undef PACKEDARRAY_IMPL_BITS_AVAILABLE #undef PACKEDARRAY_IMPL_START_BIT #undef PACKEDARRAY_IMPL_START_MASK #endif // #if defined(PACKEDARRAY_IMPL_PACK_CASES) || defined(PACKEDARRAY_IMPL_UNPACK_CASES) #else #include "PackedArray.h" #if !defined(PACKEDARRAY_ASSERT) #include #define PACKEDARRAY_ASSERT(expression) assert(expression) #endif #define PACKEDARRAY_IMPL #define PACKEDARRAY_IMPL_BITS_PER_ITEM 1 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 2 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 3 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 4 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 5 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 6 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 7 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 8 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 9 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 10 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 11 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 12 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 13 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 14 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 15 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 16 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 17 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 18 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 19 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 20 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 21 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 22 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 23 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 24 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 25 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 26 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 27 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 28 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 29 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 30 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 31 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 32 #include PACKEDARRAY_SELF #undef PACKEDARRAY_IMPL #if !defined(PACKEDARRAY_MALLOC) || !defined(PACKEDARRAY_FREE) #include #endif #if !defined(PACKEDARRAY_MALLOC) #define PACKEDARRAY_MALLOC(size) malloc(size) #endif #if !defined(PACKEDARRAY_FREE) #define PACKEDARRAY_FREE(p) free(p) #endif #include PackedArray* PackedArray_create(uint32_t bitsPerItem, uint32_t count) { PackedArray* a; size_t bufferSize; PACKEDARRAY_ASSERT(bitsPerItem > 0); PACKEDARRAY_ASSERT(bitsPerItem <= 32); bufferSize = sizeof(uint32_t) * (((uint64_t)bitsPerItem * (uint64_t)count + 31) / 32); a = (PackedArray*)PACKEDARRAY_MALLOC(sizeof(PackedArray) + bufferSize); if (a != NULL) { a->buffer[((uint64_t)bitsPerItem * (uint64_t)count + 31) / 32 - 1] = 0; a->bitsPerItem = bitsPerItem; a->count = count; } return a; } void PackedArray_destroy(PackedArray* a) { PACKEDARRAY_ASSERT(a); PACKEDARRAY_FREE(a); } void PackedArray_pack(PackedArray* a, const uint32_t offset, const uint32_t* in, uint32_t count) { PACKEDARRAY_ASSERT(a != NULL); PACKEDARRAY_ASSERT(in != NULL); switch (a->bitsPerItem) { case 1: __PackedArray_pack_1(a->buffer, offset, in, count); break; case 2: __PackedArray_pack_2(a->buffer, offset, in, count); break; case 3: __PackedArray_pack_3(a->buffer, offset, in, count); break; case 4: __PackedArray_pack_4(a->buffer, offset, in, count); break; case 5: __PackedArray_pack_5(a->buffer, offset, in, count); break; case 6: __PackedArray_pack_6(a->buffer, offset, in, count); break; case 7: __PackedArray_pack_7(a->buffer, offset, in, count); break; case 8: __PackedArray_pack_8(a->buffer, offset, in, count); break; case 9: __PackedArray_pack_9(a->buffer, offset, in, count); break; case 10: __PackedArray_pack_10(a->buffer, offset, in, count); break; case 11: __PackedArray_pack_11(a->buffer, offset, in, count); break; case 12: __PackedArray_pack_12(a->buffer, offset, in, count); break; case 13: __PackedArray_pack_13(a->buffer, offset, in, count); break; case 14: __PackedArray_pack_14(a->buffer, offset, in, count); break; case 15: __PackedArray_pack_15(a->buffer, offset, in, count); break; case 16: __PackedArray_pack_16(a->buffer, offset, in, count); break; case 17: __PackedArray_pack_17(a->buffer, offset, in, count); break; case 18: __PackedArray_pack_18(a->buffer, offset, in, count); break; case 19: __PackedArray_pack_19(a->buffer, offset, in, count); break; case 20: __PackedArray_pack_20(a->buffer, offset, in, count); break; case 21: __PackedArray_pack_21(a->buffer, offset, in, count); break; case 22: __PackedArray_pack_22(a->buffer, offset, in, count); break; case 23: __PackedArray_pack_23(a->buffer, offset, in, count); break; case 24: __PackedArray_pack_24(a->buffer, offset, in, count); break; case 25: __PackedArray_pack_25(a->buffer, offset, in, count); break; case 26: __PackedArray_pack_26(a->buffer, offset, in, count); break; case 27: __PackedArray_pack_27(a->buffer, offset, in, count); break; case 28: __PackedArray_pack_28(a->buffer, offset, in, count); break; case 29: __PackedArray_pack_29(a->buffer, offset, in, count); break; case 30: __PackedArray_pack_30(a->buffer, offset, in, count); break; case 31: __PackedArray_pack_31(a->buffer, offset, in, count); break; case 32: __PackedArray_pack_32(a->buffer, offset, in, count); break; } } void PackedArray_unpack(const PackedArray* a, const uint32_t offset, uint32_t* out, uint32_t count) { PACKEDARRAY_ASSERT(a != NULL); PACKEDARRAY_ASSERT(out != NULL); switch (a->bitsPerItem) { case 1: __PackedArray_unpack_1(a->buffer, offset, out, count); break; case 2: __PackedArray_unpack_2(a->buffer, offset, out, count); break; case 3: __PackedArray_unpack_3(a->buffer, offset, out, count); break; case 4: __PackedArray_unpack_4(a->buffer, offset, out, count); break; case 5: __PackedArray_unpack_5(a->buffer, offset, out, count); break; case 6: __PackedArray_unpack_6(a->buffer, offset, out, count); break; case 7: __PackedArray_unpack_7(a->buffer, offset, out, count); break; case 8: __PackedArray_unpack_8(a->buffer, offset, out, count); break; case 9: __PackedArray_unpack_9(a->buffer, offset, out, count); break; case 10: __PackedArray_unpack_10(a->buffer, offset, out, count); break; case 11: __PackedArray_unpack_11(a->buffer, offset, out, count); break; case 12: __PackedArray_unpack_12(a->buffer, offset, out, count); break; case 13: __PackedArray_unpack_13(a->buffer, offset, out, count); break; case 14: __PackedArray_unpack_14(a->buffer, offset, out, count); break; case 15: __PackedArray_unpack_15(a->buffer, offset, out, count); break; case 16: __PackedArray_unpack_16(a->buffer, offset, out, count); break; case 17: __PackedArray_unpack_17(a->buffer, offset, out, count); break; case 18: __PackedArray_unpack_18(a->buffer, offset, out, count); break; case 19: __PackedArray_unpack_19(a->buffer, offset, out, count); break; case 20: __PackedArray_unpack_20(a->buffer, offset, out, count); break; case 21: __PackedArray_unpack_21(a->buffer, offset, out, count); break; case 22: __PackedArray_unpack_22(a->buffer, offset, out, count); break; case 23: __PackedArray_unpack_23(a->buffer, offset, out, count); break; case 24: __PackedArray_unpack_24(a->buffer, offset, out, count); break; case 25: __PackedArray_unpack_25(a->buffer, offset, out, count); break; case 26: __PackedArray_unpack_26(a->buffer, offset, out, count); break; case 27: __PackedArray_unpack_27(a->buffer, offset, out, count); break; case 28: __PackedArray_unpack_28(a->buffer, offset, out, count); break; case 29: __PackedArray_unpack_29(a->buffer, offset, out, count); break; case 30: __PackedArray_unpack_30(a->buffer, offset, out, count); break; case 31: __PackedArray_unpack_31(a->buffer, offset, out, count); break; case 32: __PackedArray_unpack_32(a->buffer, offset, out, count); break; } } void PackedArray_set(PackedArray* a, const uint32_t offset, const uint32_t in) { uint32_t* __restrict out; uint32_t bitsPerItem; uint32_t startBit; uint32_t bitsAvailable; uint32_t mask; PACKEDARRAY_ASSERT(a != NULL); bitsPerItem = a->bitsPerItem; out = &a->buffer[((uint64_t)offset * (uint64_t)bitsPerItem) / 32]; startBit = ((uint64_t)offset * (uint64_t)bitsPerItem) % 32; bitsAvailable = 32 - startBit; mask = (uint32_t)(1ULL << bitsPerItem) - 1; PACKEDARRAY_ASSERT(0 == (~mask & in)); if (bitsPerItem <= bitsAvailable) { out[0] = (out[0] & ~(mask << startBit)) | (in << startBit); } else { // value spans 2 buffer cells uint32_t low, high; low = in << startBit; high = in >> bitsAvailable; out[0] = (out[0] & ~(mask << startBit)) | low; out[1] = (out[1] & ~(mask >> (32 - startBit))) | high; } } uint32_t PackedArray_get(const PackedArray* a, const uint32_t offset) { const uint32_t* __restrict in; uint32_t bitsPerItem; uint32_t startBit; uint32_t bitsAvailable; uint32_t mask; uint32_t out; PACKEDARRAY_ASSERT(a != NULL); bitsPerItem = a->bitsPerItem; in = &a->buffer[((uint64_t)offset * (uint64_t)bitsPerItem) / 32]; startBit = ((uint64_t)offset * (uint64_t)bitsPerItem) % 32; bitsAvailable = 32 - startBit; mask = (uint32_t)(1ULL << bitsPerItem) - 1; if (bitsPerItem <= bitsAvailable) { out = (in[0] >> startBit) & mask; } else { // out spans 2 buffer cells uint32_t low, high; low = in[0] >> startBit; high = in[1] << (32 - startBit); out = low ^ ((low ^ high) & (mask >> bitsAvailable << bitsAvailable)); } return out; } uint32_t PackedArray_bufferSize(const PackedArray* a) { PACKEDARRAY_ASSERT(a != NULL); return (uint32_t)(((uint64_t)a->bitsPerItem * (uint64_t)a->count + 31) / 32); } #if !(defined(_MSC_VER) && _MSC_VER >= 1400) && !defined(__GNUC__) // log base 2 of an integer, aka the position of the highest bit set static uint32_t __PackedArray_log2(uint32_t v) { // references // http://aggregate.org/MAGIC // http://graphics.stanford.edu/~seander/bithacks.html static const uint32_t multiplyDeBruijnBitPosition[32] = { 0, 9, 1, 10, 13, 21, 2, 29, 11, 14, 16, 18, 22, 25, 3, 30, 8, 12, 20, 28, 15, 17, 24, 7, 19, 27, 23, 6, 26, 5, 4, 31 }; v |= v >> 1; v |= v >> 2; v |= v >> 4; v |= v >> 8; v |= v >> 16; return multiplyDeBruijnBitPosition[(uint32_t)(v * 0x7C4ACDDU) >> 27]; } #endif // position of the highest bit set static int __PackedArray_highestBitSet(uint32_t v) { #if defined(_MSC_VER) && _MSC_VER >= 1400 unsigned long index; return _BitScanReverse(&index, v) ? index : -1; #elif defined(__GNUC__) return v == 0 ? -1 : 31 - __builtin_clz(v); #else return v != 0 ? __PackedArray_log2(v) : -1; #endif } uint32_t PackedArray_computeBitsPerItem(const uint32_t* in, uint32_t count) { uint32_t i, in_max, bitsPerItem; in_max = 0; for (i = 0; i < count; ++i) in_max = in[i] > in_max ? in[i] : in_max; bitsPerItem = __PackedArray_highestBitSet(in_max) + 1; return bitsPerItem == 0 ? 1 : bitsPerItem; } // - 8< ------------------------------------------------------------------------ #if defined(PACKEDARRAY_SELF_TEST) && defined(PACKEDARRAY_SELF_BENCH) #error choose either PACKEDARRAY_SELF_TEST or PACKEDARRAY_SELF_BENCH #endif #if defined(PACKEDARRAY_SELF_TEST) #undef NDEBUG // we want asserts #include #include #include // memcmp static void PackedArray_pack_reference(PackedArray* a, const uint32_t offset, const uint32_t* in, uint32_t count) { uint32_t* __restrict out; uint32_t bitsPerItem; uint32_t startBit; uint32_t bitsAvailable; uint32_t mask; uint32_t packed; assert(a != NULL); assert(in != NULL); assert(count != 0); bitsPerItem = a->bitsPerItem; out = &a->buffer[(uint64_t)offset * (uint64_t)bitsPerItem / 32]; startBit = ((uint64_t)offset * (uint64_t)bitsPerItem) % 32; bitsAvailable = 32 - startBit; mask = (uint32_t)(1ULL << bitsPerItem) - 1; packed = *out; while (count--) { uint32_t value = *in++; assert(0 == (~mask & value)); if (bitsPerItem <= bitsAvailable) { packed = (packed & ~(mask << startBit)) | (value << startBit); startBit += bitsPerItem; bitsAvailable -= bitsPerItem; } else if (bitsAvailable == 0) { *out++ = packed; packed = *out; startBit = 0; bitsAvailable = 32; packed = (packed & ~mask) | value; startBit += bitsPerItem; bitsAvailable -= bitsPerItem; } else { // value spans 2 buffer cells uint32_t low, high; low = value << startBit; high = value >> bitsAvailable; packed = (packed & ~(mask << startBit)) | low; *out++ = packed; packed = *out; packed = (packed & ~(mask >> (32 - startBit))) | high; startBit = (startBit + bitsPerItem) % 32; bitsAvailable = 32 - startBit; } } *out = packed; } static void PackedArray_unpack_reference(const PackedArray* a, const uint32_t offset, uint32_t* out, uint32_t count) { const uint32_t* __restrict in; uint32_t bitsPerItem; uint32_t startBit; uint32_t bitsAvailable; uint32_t mask; uint32_t packed; assert(a != NULL); assert(out != NULL); assert(count != 0); bitsPerItem = a->bitsPerItem; in = &a->buffer[(uint64_t)offset * (uint64_t)bitsPerItem / 32]; startBit = ((uint64_t)offset * (uint64_t)bitsPerItem) % 32; bitsAvailable = 32 - startBit; mask = (uint32_t)(1ULL << bitsPerItem) - 1; packed = *in; while (count--) { uint32_t value; if (bitsPerItem <= bitsAvailable) { value = (packed >> startBit) & mask; *out++ = value; startBit += bitsPerItem; bitsAvailable -= bitsPerItem; } else if (bitsAvailable == 0) { packed = *++in; value = packed & mask; *out++ = value; startBit = bitsPerItem; bitsAvailable = 32 - bitsPerItem; } else { // value spans 2 buffer cells uint32_t low, high; low = packed >> startBit; packed = *++in; high = packed << (32 - startBit); value = low ^ ((low ^ high) & (mask >> bitsAvailable << bitsAvailable)); *out++ = value; startBit = (startBit + bitsPerItem) % 32; bitsAvailable = 32 - startBit; } } } int main(void) { uint32_t bitsPerItem; printf("-- PackedArray self test -------------------------------------------------------\n"); printf("\n"); printf("sizeof(PackedArray) = %d\n", (int)sizeof(PackedArray)); printf("\n"); printf("1 by 1 packing / unpacking:\n"); for (bitsPerItem = 1; bitsPerItem <= 32; ++bitsPerItem) { uint32_t mask = (uint32_t)(1ULL << bitsPerItem) - 1; int count; for (count = 1; count <= 1024; ++count) { PackedArray* a1 = PackedArray_create(bitsPerItem, count); PackedArray* a2 = PackedArray_create(bitsPerItem, count); int i; assert(a1->count == (uint32_t)count); assert(a2->count == (uint32_t)count); assert(a1->bitsPerItem == bitsPerItem); assert(a2->bitsPerItem == bitsPerItem); assert(PackedArray_bufferSize(a1) == PackedArray_bufferSize(a2)); for (i = 0; i < (int)PackedArray_bufferSize(a1); ++i) a1->buffer[i] = a2->buffer[i] = rand(); for (i = 0; i < count; ++i) { uint32_t v1, v2; v1 = rand() & mask; v2 = v1 + 1; PackedArray_pack(a1, i, &v1, 1); PackedArray_pack_reference(a2, i, &v1, 1); assert(memcmp(a1->buffer, a2->buffer, sizeof(a1->buffer[0]) * PackedArray_bufferSize(a1)) == 0); PackedArray_set(a1, i, v1); assert(memcmp(a1->buffer, a2->buffer, sizeof(a1->buffer[0]) * PackedArray_bufferSize(a1)) == 0); PackedArray_unpack(a1, i, &v2, 1); assert(v1 == v2); PackedArray_unpack_reference(a2, i, &v2, 1); assert(v1 == v2); v2 = PackedArray_get(a2, i); assert(v1 == v2); } for (i = count - 1; i >= 0; --i) { uint32_t v1, v2; v1 = rand() & mask; v2 = v1 + 1; PackedArray_pack(a1, i, &v1, 1); PackedArray_pack_reference(a2, i, &v1, 1); assert(memcmp(a1->buffer, a2->buffer, sizeof(a1->buffer[0]) * PackedArray_bufferSize(a1)) == 0); PackedArray_set(a1, i, v1); assert(memcmp(a1->buffer, a2->buffer, sizeof(a1->buffer[0]) * PackedArray_bufferSize(a1)) == 0); PackedArray_unpack(a1, i, &v2, 1); assert(v1 == v2); PackedArray_unpack_reference(a2, i, &v2, 1); assert(v1 == v2); v2 = PackedArray_get(a2, i); assert(v1 == v2); } PackedArray_destroy(a1); PackedArray_destroy(a2); } printf(" %2d bits per item -- success.\n", bitsPerItem); } printf("\n"); printf("bulk packing / unpacking:\n"); for (bitsPerItem = 1; bitsPerItem <= 32; ++bitsPerItem) { uint32_t mask = (uint32_t)(1ULL << bitsPerItem) - 1; int count; for (count = 1; count <= 128; ++count) { uint32_t* v1; uint32_t* v2; PackedArray* a1; PackedArray* a2; int i, j; v1 = (uint32_t*)malloc(sizeof(uint32_t) * count); assert(v1 != NULL); v2 = (uint32_t*)malloc(sizeof(uint32_t) * count); assert(v2 != NULL); a1 = PackedArray_create(bitsPerItem, count); assert(a1 != NULL); a2 = PackedArray_create(bitsPerItem, count); assert(a2 != NULL); for (i = 0; i < (int)PackedArray_bufferSize(a1); ++i) a1->buffer[i] = a2->buffer[i] = rand(); for (i = 0; i < count; ++i) v1[i] = rand() & mask; assert(bitsPerItem >= PackedArray_computeBitsPerItem(v1, count)); for (i = 0; i < count; ++i) { for (j = 1; j <= count - i; ++j) { PackedArray_pack(a1, i, v1, j); PackedArray_pack_reference(a2, i, v1, j); assert(memcmp(a1->buffer, a2->buffer, sizeof(a1->buffer[0]) * PackedArray_bufferSize(a1)) == 0); PackedArray_unpack(a1, i, v2, j); assert(bitsPerItem >= PackedArray_computeBitsPerItem(v2, j)); assert(memcmp(v1, v2, j * sizeof(uint32_t)) == 0); PackedArray_unpack_reference(a2, i, v2, j); assert(memcmp(v1, v2, j * sizeof(uint32_t)) == 0); } } PackedArray_destroy(a1); PackedArray_destroy(a2); free(v1); free(v2); } printf(" %2d bits per item -- success.\n", bitsPerItem); } return 0; } #elif defined(PACKEDARRAY_SELF_BENCH) // #if defined(PACKEDARRAY_SELF_TEST) #ifndef NDEBUG #error please define NDEBUG to inhibit asserts when compiling the benchmark #endif #include #include #include #ifndef MIN #define MIN(x, y) (((x) < (y)) ? (x) : (y)) #endif #ifndef MAX #define MAX(x, y) (((x) < (y)) ? (y) : (x)) #endif #ifdef _MSC_VER #pragma warning(push, 3) #include #pragma warning(pop) static double getChronometerTime(void) { LARGE_INTEGER frequency; LARGE_INTEGER t; QueryPerformanceFrequency(&frequency); QueryPerformanceCounter(&t); return (double)t.QuadPart / (double)frequency.QuadPart * 1000; } #else #include static double getChronometerTime() { struct timeval now = { 0 }; gettimeofday(&now, NULL); return (double)now.tv_sec + (double)now.tv_usec * 1e-6; } #endif #define LOOP_COUNT 1000 static double bench_memcpy(uint32_t* in, uint32_t* out, uint32_t count) { double start, end; uint32_t i; start = getChronometerTime(); for (i = 0; i < LOOP_COUNT; ++i) memcpy(out, in, count * sizeof(uint32_t)); end = getChronometerTime(); return 1e6 * (end - start) / LOOP_COUNT; } static double bench_loopcpy(uint32_t* in, uint32_t* out, uint32_t count) { double start, end; uint32_t i; start = getChronometerTime(); for (i = 0; i < LOOP_COUNT; ++i) { uint32_t j; for (j = 0; j < count; ++j) out[j] = in[j]; } end = getChronometerTime(); return 1e6 * (end - start) / LOOP_COUNT; } static double bench_pack(uint32_t* in, PackedArray* out, uint32_t count) { double start, end; int i; start = getChronometerTime(); for (i = 0; i < LOOP_COUNT; ++i) PackedArray_pack(out, 0, in, count); end = getChronometerTime(); return 1e6 * (end - start) / LOOP_COUNT; } static double bench_unpack(PackedArray* in, uint32_t* out, uint32_t count) { double start, end; int i; start = getChronometerTime(); for (i = 0; i < LOOP_COUNT; ++i) PackedArray_unpack(in, 0, out, count); end = getChronometerTime(); return 1e6 * (end - start) / LOOP_COUNT; } #define MAX_ELEMENT_COUNT (1 << 18) #define LOG2_MAX_ELEMENT_COUNT 18 int main(void) { double start, end; uint32_t* b1; uint32_t* b2; uint32_t count, bitsPerItem; PackedArray** packed; uint32_t i; double* speed_memcpy; double avg_memcpy, min_memcpy, max_memcpy; double* speed_loopcpy; double avg_loopcpy, min_loopcpy, max_loopcpy; double* speed_pack[32]; double avg_pack, min_pack, max_pack; double* speed_unpack[32]; double avg_unpack, min_unpack, max_unpack; printf("-- PackedArray self bench ------------------------------------------------------\n"); start = getChronometerTime(); b1 = (uint32_t*)malloc(sizeof(uint32_t) * MAX_ELEMENT_COUNT); assert(b1 != NULL); b2 = (uint32_t*)malloc(sizeof(uint32_t) * MAX_ELEMENT_COUNT); assert(b2 != NULL); packed = (PackedArray**)malloc(sizeof(PackedArray*) * 32); assert(packed != NULL); for (i = 0; i < 32; ++i) packed[i] = PackedArray_create(i + 1, MAX_ELEMENT_COUNT); for (i = 0; i < MAX_ELEMENT_COUNT; ++i) b1[i] = rand(); speed_memcpy = (double*)malloc(sizeof(double) * (LOG2_MAX_ELEMENT_COUNT + 1)); assert(speed_memcpy != NULL); avg_memcpy = 0; min_memcpy = DBL_MAX; max_memcpy = 0; printf("memcpy:\n"); printf("bits\tsize (B)\ttime (µs)\tspeed (B/µs)\n"); for (count = 1, i = 0; count <= MAX_ELEMENT_COUNT; count *= 2, ++i) { double elapsed = bench_memcpy(b1, b2, count); double speed = count * sizeof(uint32_t) / elapsed; printf("%4d\t%8d\t%9.3f\t%12.3f\n", 32, (uint32_t)(count * sizeof(uint32_t)), elapsed, speed); avg_memcpy += speed; min_memcpy = MIN(min_memcpy, speed); max_memcpy = MAX(max_memcpy, speed); speed_memcpy[i] = speed; } avg_memcpy /= i; printf("avg (B/µs)\tmin (B/µs)\tmax (B/µs)\n"); printf("%10.3f\t%10.3f\t%10.3f\n", avg_memcpy, min_memcpy, max_memcpy); printf("\n"); speed_loopcpy = (double*)malloc(sizeof(double) * (LOG2_MAX_ELEMENT_COUNT + 1)); assert(speed_loopcpy != NULL); avg_loopcpy = 0; min_loopcpy = DBL_MAX; max_loopcpy = 0; printf("loopcpy:\n"); printf("bits\tsize (B)\ttime (µs)\tspeed (B/µs)\n"); for (count = 1, i = 0; count <= MAX_ELEMENT_COUNT; count *= 2, ++i) { double elapsed = bench_loopcpy(b1, b2, count); double speed = count * sizeof(uint32_t) / elapsed; printf("%4d\t%8d\t%9.3f\t%12.3f\n", 32, (uint32_t)(count * sizeof(uint32_t)), elapsed, speed); avg_loopcpy += speed; min_loopcpy = MIN(min_loopcpy, speed); max_loopcpy = MAX(max_loopcpy, speed); speed_loopcpy[i] = speed; } avg_loopcpy /= i; printf("avg (B/µs)\tmin (B/µs)\tmax (B/µs)\n"); printf("%10.3f\t%10.3f\t%10.3f\n", avg_loopcpy, min_loopcpy, max_loopcpy); printf("\n"); for (bitsPerItem = 1; bitsPerItem <= 32; ++bitsPerItem) { avg_pack = 0; min_pack = DBL_MAX; max_pack = 0; avg_unpack = 0; min_unpack = DBL_MAX; max_unpack = 0; printf("pack:\t \t \t \t"); printf("unpack:\t \t \t \t"); printf("\n"); printf("bits\tsize (B)\ttime (µs)\tspeed (B/µs)"); printf("\t"); printf("bits\tsize (B)\ttime (µs)\tspeed (B/µs)"); printf("\n"); speed_pack[bitsPerItem - 1] = (double*)malloc(sizeof(double) * (LOG2_MAX_ELEMENT_COUNT + 1)); assert(speed_pack[bitsPerItem - 1] != NULL); speed_unpack[bitsPerItem - 1] = (double*)malloc(sizeof(double) * (LOG2_MAX_ELEMENT_COUNT + 1)); assert(speed_unpack[bitsPerItem - 1] != NULL); for (count = 1, i = 0; count <= MAX_ELEMENT_COUNT; count *= 2, ++i) { uint32_t mask = (uint32_t)(1ULL << bitsPerItem) - 1; uint32_t j; double elapsed, speed; for (j = 0; j < count; ++j) b2[j] = b1[j] & mask; elapsed = bench_pack(b2, packed[bitsPerItem - 1], count); speed = count * sizeof(uint32_t) / elapsed; printf("%4d\t%8d\t%9.3f\t%12.3f", bitsPerItem, (uint32_t)(count * sizeof(uint32_t)), elapsed, speed); avg_pack += speed; min_pack = MIN(min_pack, speed); max_pack = MAX(max_pack, speed); speed_pack[bitsPerItem - 1][i] = speed; printf("\t"); elapsed = bench_unpack(packed[bitsPerItem - 1], b2, count); speed = count * sizeof(uint32_t) / elapsed; printf("%4d\t%8d\t%9.3f\t%12.3f", bitsPerItem, (uint32_t)(count * sizeof(uint32_t)), elapsed, speed); avg_unpack += speed; min_unpack = MIN(min_unpack, speed); max_unpack = MAX(max_unpack, speed); speed_unpack[bitsPerItem - 1][i] = speed; printf("\n"); } assert(i == LOG2_MAX_ELEMENT_COUNT + 1); printf("avg (B/µs)\tmin (B/µs)\tmax (B/µs)"); printf("\t\t"); printf("avg (B/µs)\tmin (B/µs)\tmax (B/µs)"); printf("\n"); avg_pack /= i; printf("%10.3f\t%10.3f\t%10.3f", avg_pack, min_pack, max_pack); printf("\t\t"); avg_unpack /= i; printf("%10.3f\t%10.3f\t%10.3f", avg_unpack, min_unpack, max_unpack); printf("\n"); printf("\n"); } printf("\n"); printf("stats by bits per item\n"); printf("pack:\t \t \t \t"); printf("unpack:\t \t \t \t"); printf("\n"); printf("bits\tavg (B/µs)\tmin (B/µs)\tmax (B/µs)"); printf("\t"); printf("avg (B/µs)\tmin (B/µs)\tmax (B/µs)"); printf("\n"); for (bitsPerItem = 1; bitsPerItem <= 32; ++bitsPerItem) { avg_pack = 0; min_pack = DBL_MAX; max_pack = 0; avg_unpack = 0; min_unpack = DBL_MAX; max_unpack = 0; for (count = 1, i = 0; count <= MAX_ELEMENT_COUNT; count *= 2, ++i) { double speed; speed = speed_pack[bitsPerItem - 1][i]; avg_pack += speed; min_pack = MIN(min_pack, speed); max_pack = MAX(max_pack, speed); speed = speed_unpack[bitsPerItem - 1][i]; avg_unpack += speed; min_unpack = MIN(min_unpack, speed); max_unpack = MAX(max_unpack, speed); } assert(i == LOG2_MAX_ELEMENT_COUNT + 1); printf("%4d\t", bitsPerItem); avg_pack /= i; printf("%10.3f\t%10.3f\t%10.3f", avg_pack, min_pack, max_pack); printf("\t"); avg_unpack /= i; printf("%10.3f\t%10.3f\t%10.3f", avg_unpack, min_unpack, max_unpack); printf("\n"); } printf("\n"); printf("stats by size\n"); printf("pack:\t \t \t \t"); printf("unpack:\t \t \t \t"); printf("\n"); printf("size(B)\tavg (B/µs)\tmin (B/µs)\tmax (B/µs)"); printf("\t"); printf("avg (B/µs)\tmin (B/µs)\tmax (B/µs)"); printf("\n"); for (count = 1, i = 0; count <= MAX_ELEMENT_COUNT; count *= 2, ++i) { avg_pack = 0; min_pack = DBL_MAX; max_pack = 0; avg_unpack = 0; min_unpack = DBL_MAX; max_unpack = 0; for (bitsPerItem = 1; bitsPerItem <= 32; ++bitsPerItem) { double speed; speed = speed_pack[bitsPerItem - 1][i]; avg_pack += speed; min_pack = MIN(min_pack, speed); max_pack = MAX(max_pack, speed); speed = speed_unpack[bitsPerItem - 1][i]; avg_unpack += speed; min_unpack = MIN(min_unpack, speed); max_unpack = MAX(max_unpack, speed); } printf("%7d\t", (uint32_t)sizeof(uint32_t) * count); avg_pack /= 32; printf("%10.3f\t%10.3f\t%10.3f", avg_pack, min_pack, max_pack); printf("\t"); avg_unpack /= 32; printf("%10.3f\t%10.3f\t%10.3f", avg_unpack, min_unpack, max_unpack); printf("\n"); } printf("\n"); free(b1); free(b2); free(speed_memcpy); free(speed_loopcpy); for (i = 0; i < 32; ++i) { PackedArray_destroy(packed[i]); free(speed_pack[i]); free(speed_unpack[i]); } free(packed); end = getChronometerTime(); printf("total time (s): %f\n", (end - start)); printf("\n"); return 0; } #endif // #elif defined(PACKEDARRAY_SELF_BENCH) #endif // #ifdef PACKEDARRAY_IMPL ================================================ FILE: PackedArray.h ================================================ #ifndef PACKEDARRAY_H #define PACKEDARRAY_H #ifdef __cplusplus extern "C" { #endif #include /* PackedArray principle: . compact storage of <= 32 bits items . items are tightly packed into a buffer of uint32_t integers PackedArray requirements: . you must know in advance how many bits are needed to hold a single item . you must know in advance how many items you want to store . when packing, behavior is undefined if items have more than bitsPerItem bits PackedArray general in memory representation: |-------------------------------------------------- - - - | b0 | b1 | b2 | |-------------------------------------------------- - - - | i0 | i1 | i2 | i3 | i4 | i5 | i6 | i7 | i8 | i9 | |-------------------------------------------------- - - - . items are tightly packed together . several items end up inside the same buffer cell, e.g. i0, i1, i2 . some items span two buffer cells, e.g. i3, i6 */ struct _PackedArray { uint32_t bitsPerItem; uint32_t count; uint32_t padding[2]; #ifdef _MSC_VER #pragma warning(push) #pragma warning(disable: 4200) #endif // #ifdef _MSC_VER uint32_t buffer[]; #ifdef _MSC_VER #pragma warning(pop) #endif // #ifdef _MSC_VER }; typedef struct _PackedArray PackedArray; // creation / destruction PackedArray* PackedArray_create(uint32_t bitsPerItem, uint32_t count); void PackedArray_destroy(PackedArray* a); // packing / unpacking // offset is expressed in number of elements void PackedArray_pack(PackedArray* a, const uint32_t offset, const uint32_t* in, uint32_t count); void PackedArray_unpack(const PackedArray* a, const uint32_t offset, uint32_t* out, uint32_t count); // single item access void PackedArray_set(PackedArray* a, const uint32_t offset, const uint32_t in); uint32_t PackedArray_get(const PackedArray* a, const uint32_t offset); // helpers uint32_t PackedArray_bufferSize(const PackedArray* a); uint32_t PackedArray_computeBitsPerItem(const uint32_t* in, uint32_t count); #ifdef __cplusplus } #endif #endif // #ifndef PACKEDARRAY_H ================================================ FILE: PackedArraySIMD.c ================================================ // see README.md for usage instructions. // (‑●‑●)> released under the WTFPL v2 license, by Gregory Pakosz (@gpakosz) #ifndef PACKEDARRAY_SELF #define PACKEDARRAY_SELF "PackedArraySIMD.c" #endif #ifdef PACKEDARRAY_IMPL #ifndef PACKEDARRAY_JOIN #define PACKEDARRAY_JOIN(lhs, rhs) PACKEDARRAY_JOIN_(lhs, rhs) #define PACKEDARRAY_JOIN_(lhs, rhs) PACKEDARRAY_JOIN__(lhs, rhs) #define PACKEDARRAY_JOIN__(lhs, rhs) lhs##rhs #endif // #ifndef PACKEDARRAY_JOIN #ifndef PACKEDARRAY_IMPL_BITS_PER_ITEM #error PACKEDARRAY_IMPL_BITS_PER_ITEM undefined #endif // #ifndef PACKEDARRAY_IMPL_BITS_PER_ITEM #if defined(PACKEDARRAY_IMPL_PACK_CASES) || defined(PACKEDARRAY_IMPL_UNPACK_CASES) #ifndef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 0 #elif PACKEDARRAY_IMPL_CASE_I == 0 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 1 #elif PACKEDARRAY_IMPL_CASE_I == 1 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 2 #elif PACKEDARRAY_IMPL_CASE_I == 2 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 3 #elif PACKEDARRAY_IMPL_CASE_I == 3 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 4 #elif PACKEDARRAY_IMPL_CASE_I == 4 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 5 #elif PACKEDARRAY_IMPL_CASE_I == 5 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 6 #elif PACKEDARRAY_IMPL_CASE_I == 6 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 7 #elif PACKEDARRAY_IMPL_CASE_I == 7 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 8 #elif PACKEDARRAY_IMPL_CASE_I == 8 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 9 #elif PACKEDARRAY_IMPL_CASE_I == 9 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 10 #elif PACKEDARRAY_IMPL_CASE_I == 10 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 11 #elif PACKEDARRAY_IMPL_CASE_I == 11 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 12 #elif PACKEDARRAY_IMPL_CASE_I == 12 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 13 #elif PACKEDARRAY_IMPL_CASE_I == 13 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 14 #elif PACKEDARRAY_IMPL_CASE_I == 14 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 15 #elif PACKEDARRAY_IMPL_CASE_I == 15 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 16 #elif PACKEDARRAY_IMPL_CASE_I == 16 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 17 #elif PACKEDARRAY_IMPL_CASE_I == 17 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 18 #elif PACKEDARRAY_IMPL_CASE_I == 18 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 19 #elif PACKEDARRAY_IMPL_CASE_I == 19 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 20 #elif PACKEDARRAY_IMPL_CASE_I == 20 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 21 #elif PACKEDARRAY_IMPL_CASE_I == 21 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 22 #elif PACKEDARRAY_IMPL_CASE_I == 22 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 23 #elif PACKEDARRAY_IMPL_CASE_I == 23 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 24 #elif PACKEDARRAY_IMPL_CASE_I == 24 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 25 #elif PACKEDARRAY_IMPL_CASE_I == 25 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 26 #elif PACKEDARRAY_IMPL_CASE_I == 26 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 27 #elif PACKEDARRAY_IMPL_CASE_I == 27 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 28 #elif PACKEDARRAY_IMPL_CASE_I == 28 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 29 #elif PACKEDARRAY_IMPL_CASE_I == 29 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 30 #elif PACKEDARRAY_IMPL_CASE_I == 30 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 31 #elif PACKEDARRAY_IMPL_CASE_I == 31 #undef PACKEDARRAY_IMPL_CASE_I #define PACKEDARRAY_IMPL_CASE_I 32 #endif // #ifndef PACKEDARRAY_IMPL_CASE_I #ifndef PACKEDARRAY_IMPL_BITS_AVAILABLE #define PACKEDARRAY_IMPL_BITS_AVAILABLE (32 - ((PACKEDARRAY_IMPL_CASE_I * PACKEDARRAY_IMPL_BITS_PER_ITEM) % 32)) #endif #ifndef PACKEDARRAY_IMPL_START_BIT #define PACKEDARRAY_IMPL_START_BIT ((PACKEDARRAY_IMPL_CASE_I * PACKEDARRAY_IMPL_BITS_PER_ITEM) % 32) #endif #if defined(PACKEDARRAY_IMPL_PACK_CASES) #ifndef PACKEDARRAY_IMPL_PACK_CASE_BREAK #define PACKEDARRAY_IMPL_PACK_CASE_BREAK #endif case PACKEDARRAY_IMPL_CASE_I: #if (PACKEDARRAY_IMPL_BITS_PER_ITEM <= PACKEDARRAY_IMPL_BITS_AVAILABLE) in_4 = PackedArray_loadu_uint32x4(in); packed = PackedArray_vsli0_uint32x4(packed, in_4, PACKEDARRAY_IMPL_START_BIT); in += 4; #if (PACKEDARRAY_IMPL_BITS_PER_ITEM == PACKEDARRAY_IMPL_BITS_AVAILABLE) PackedArray_store_uint32x4(out, packed); out += 4; packed = PackedArray_uint32x4_zero; #endif #else in_4 = PackedArray_loadu_uint32x4(in); packed = PackedArray_vsli0_uint32x4(packed, in_4, PACKEDARRAY_IMPL_START_BIT); PackedArray_store_uint32x4(out, packed); out += 4; packed = PackedArray_shr_uint32x4(in_4, PACKEDARRAY_IMPL_BITS_AVAILABLE); in += 4; #endif PACKEDARRAY_IMPL_PACK_CASE_BREAK #if PACKEDARRAY_IMPL_CASE_I < 31 #include PACKEDARRAY_SELF #else #undef PACKEDARRAY_IMPL_CASE_I #undef PACKEDARRAY_IMPL_PACK_CASE_BREAK #undef PACKEDARRAY_IMPL_PACK_CASES #endif #elif defined(PACKEDARRAY_IMPL_UNPACK_CASES) // #if defined(PACKEDARRAY_IMPL_PACK_CASES) #ifndef PACKEDARRAY_IMPL_UNPACK_CASE_BREAK #define PACKEDARRAY_IMPL_UNPACK_CASE_BREAK #endif case PACKEDARRAY_IMPL_CASE_I: #if (PACKEDARRAY_IMPL_BITS_PER_ITEM <= PACKEDARRAY_IMPL_BITS_AVAILABLE) out_4 = PackedArray_and_uint32x4(PackedArray_shr_uint32x4(packed, PACKEDARRAY_IMPL_START_BIT), PackedArray_set_uint32x4(PACKEDARRAY_IMPL_MASK)); PackedArray_storeu_uint32x4(out, out_4); out += 4; PACKEDARRAY_IMPL_UNPACK_CASE_BREAK #if (PACKEDARRAY_IMPL_CASE_I < 31) && (PACKEDARRAY_IMPL_BITS_PER_ITEM == PACKEDARRAY_IMPL_BITS_AVAILABLE) in += 4; packed = PackedArray_load_uint32x4(in); #endif #else out_4 = PackedArray_shr_uint32x4(packed, PACKEDARRAY_IMPL_START_BIT); in += 4; packed = PackedArray_load_uint32x4(in); out_4 = PackedArray_vsli0_uint32x4(out_4, packed, PACKEDARRAY_IMPL_BITS_AVAILABLE); out_4 = PackedArray_and_uint32x4(out_4, PackedArray_set_uint32x4(PACKEDARRAY_IMPL_MASK)); PackedArray_storeu_uint32x4(out, out_4); out += 4; PACKEDARRAY_IMPL_UNPACK_CASE_BREAK #endif #if PACKEDARRAY_IMPL_CASE_I < 31 #include PACKEDARRAY_SELF #else #undef PACKEDARRAY_IMPL_CASE_I #undef PACKEDARRAY_IMPL_UNPACK_CASE_BREAK #undef PACKEDARRAY_IMPL_UNPACK_CASES #endif #endif // #elif defined(PACKEDARRAY_IMPL_UNPACK_CASES) #else // #if defined(PACKEDARRAY_IMPL_PACK_CASES) || defined(PACKEDARRAY_IMPL_UNPACK_CASES) #ifndef PACKEDARRAY_IMPL_MASK #define PACKEDARRAY_IMPL_MASK (uint32_t)((1ULL << PACKEDARRAY_IMPL_BITS_PER_ITEM) - 1) #endif void PACKEDARRAY_JOIN(__PackedArray_pack_, PACKEDARRAY_IMPL_BITS_PER_ITEM)(uint32_t* __restrict buffer, uint32_t offset, const uint32_t* __restrict in, uint32_t count) { uint32_t pre, post; uint32_t* __restrict out; const uint32_t* __restrict end; uint32_t startBit; PackedArray_uint32x4_t packed, in_4, mask; uint32_t offset_4; pre = (offset + 3) / 4 * 4 - offset; pre = pre > count ? count : pre; if (pre > 0) { __PackedArray_pack_scalar(buffer, PACKEDARRAY_IMPL_BITS_PER_ITEM, PACKEDARRAY_IMPL_MASK, offset, in, pre); offset += pre; in += pre; count -= pre; } post = count % 4; count -= post; if (count > 0) { out = &buffer[(offset / 4 * PACKEDARRAY_IMPL_BITS_PER_ITEM) / 32 * 4]; startBit = (offset / 4 * PACKEDARRAY_IMPL_BITS_PER_ITEM) % 32; packed = PackedArray_load_uint32x4(out); mask = PackedArray_sub_uint32x4(PackedArray_shl_uint32x4(PackedArray_set_uint32x4(1), startBit), PackedArray_set_uint32x4(1)); packed = PackedArray_and_uint32x4(packed, mask); offset_4 = offset % 128; offset += count; if (count >= 128 - offset_4) { int32_t n; n = (count + offset_4) / 128; count -= 128 * n - offset_4; switch (offset_4 / 4) { do { #define PACKEDARRAY_IMPL_PACK_CASES #include PACKEDARRAY_SELF } while (--n > 0); } if (count == 0) goto PACKEDARRAY_JOIN(PACKEDARRAY_JOIN(__PackedArray_pack_, PACKEDARRAY_IMPL_BITS_PER_ITEM), _post); offset_4 = 0; startBit = 0; } end = in + count; switch (offset_4 / 4) { #define PACKEDARRAY_IMPL_PACK_CASES #define PACKEDARRAY_IMPL_PACK_CASE_BREAK \ if (in == end)\ break; #include PACKEDARRAY_SELF } PACKEDARRAY_ASSERT(in == end); if ((count / 4 * PACKEDARRAY_IMPL_BITS_PER_ITEM + startBit) % 32) { in_4 = PackedArray_loadu_uint32x4(out); mask = PackedArray_sub_uint32x4(PackedArray_shl_uint32x4(PackedArray_set_uint32x4(1), ((count / 4 * PACKEDARRAY_IMPL_BITS_PER_ITEM + startBit - 1) % 32) + 1), PackedArray_set_uint32x4(1)); in_4 = PackedArray_andnot_uint32x4(in_4, mask); packed = PackedArray_or_uint32x4(packed, in_4); PackedArray_store_uint32x4(out, packed); } } PACKEDARRAY_JOIN(PACKEDARRAY_JOIN(__PackedArray_pack_, PACKEDARRAY_IMPL_BITS_PER_ITEM), _post): if (post > 0) __PackedArray_pack_scalar(buffer, PACKEDARRAY_IMPL_BITS_PER_ITEM, PACKEDARRAY_IMPL_MASK, offset, in, post); } void PACKEDARRAY_JOIN(__PackedArray_unpack_, PACKEDARRAY_IMPL_BITS_PER_ITEM)(const uint32_t* __restrict buffer, uint32_t offset, uint32_t* __restrict out, uint32_t count) { uint32_t pre, post; const uint32_t* __restrict in; const uint32_t* __restrict end; PackedArray_uint32x4_t packed, out_4; uint32_t offset_4; pre = (offset + 3) / 4 * 4 - offset; pre = pre > count ? count : pre; if (pre > 0) { __PackedArray_unpack_scalar(buffer, PACKEDARRAY_IMPL_BITS_PER_ITEM, PACKEDARRAY_IMPL_MASK, offset, out, pre); offset += pre; out += pre; count -= pre; } post = count % 4; count -= post; if (count > 0) { in = &buffer[(offset / 4 * PACKEDARRAY_IMPL_BITS_PER_ITEM) / 32 * 4]; packed = PackedArray_load_uint32x4(in); offset_4 = offset % 128; offset += count; if (count >= 128 - offset_4) { int32_t n; n = (count + offset_4) / 128; count -= 128 * n - offset_4; switch (offset_4 / 4) { do { in += 4; packed = PackedArray_load_uint32x4(in); #define PACKEDARRAY_IMPL_UNPACK_CASES #include PACKEDARRAY_SELF } while (--n > 0); } if (count == 0) goto PACKEDARRAY_JOIN(PACKEDARRAY_JOIN(__PackedArray_unpack_, PACKEDARRAY_IMPL_BITS_PER_ITEM), _post); in += 4; packed = PackedArray_loadu_uint32x4(in); offset_4 = 0; } end = out + count; switch (offset_4 / 4) { #define PACKEDARRAY_IMPL_UNPACK_CASES #define PACKEDARRAY_IMPL_UNPACK_CASE_BREAK \ if (out == end)\ break; #include PACKEDARRAY_SELF } PACKEDARRAY_ASSERT(out == end); } PACKEDARRAY_JOIN(PACKEDARRAY_JOIN(__PackedArray_unpack_, PACKEDARRAY_IMPL_BITS_PER_ITEM), _post): if (post > 0) __PackedArray_unpack_scalar(buffer, PACKEDARRAY_IMPL_BITS_PER_ITEM, PACKEDARRAY_IMPL_MASK, offset, out, post); } #undef PACKEDARRAY_IMPL_BITS_PER_ITEM #undef PACKEDARRAY_IMPL_BITS_AVAILABLE #undef PACKEDARRAY_IMPL_START_BIT #undef PACKEDARRAY_IMPL_START_MASK #endif // #if defined(PACKEDARRAY_IMPL_PACK_CASES) || defined(PACKEDARRAY_IMPL_UNPACK_CASES) #else #include "PackedArray.h" #if !defined(PACKEDARRAY_ASSERT) #include #define PACKEDARRAY_ASSERT(expression) assert(expression) #endif #include static void __PackedArray_pack_scalar(uint32_t* buffer, const uint32_t bitsPerItem, const uint32_t mask, uint32_t offset, const uint32_t* in, uint32_t count) { uint32_t* __restrict out; uint32_t startBit; uint32_t bitsAvailable; PACKEDARRAY_ASSERT(buffer != NULL); PACKEDARRAY_ASSERT(in != NULL); PACKEDARRAY_ASSERT(count != 0); while (count--) { uint32_t value = *in++; PACKEDARRAY_ASSERT(0 == (~mask & value)); out = &buffer[((uint64_t)offset / 4 * (uint64_t)bitsPerItem) / 32 * 4 + offset % 4]; startBit = ((uint64_t)offset / 4 * (uint64_t)bitsPerItem) % 32; ++offset; bitsAvailable = 32 - startBit; if (bitsPerItem <= bitsAvailable) { out[0] = (out[0] & ~(mask << startBit)) | (value << startBit); } else { // value spans 2 buffer cells uint32_t low, high; low = value << startBit; high = value >> bitsAvailable; out[0] = (out[0] & ~(mask << startBit)) | low; out[4] = (out[4] & ~(mask >> bitsAvailable)) | high; } } } static void __PackedArray_unpack_scalar(const uint32_t* buffer, const uint32_t bitsPerItem, const uint32_t mask, uint32_t offset, uint32_t* out, uint32_t count) { const uint32_t* __restrict in; uint32_t startBit; uint32_t bitsAvailable; PACKEDARRAY_ASSERT(buffer != NULL); PACKEDARRAY_ASSERT(out != NULL); PACKEDARRAY_ASSERT(count != 0); while (count--) { uint32_t value; in = &buffer[((uint64_t)offset / 4 * (uint64_t)bitsPerItem) / 32 * 4 + offset % 4]; startBit = ((uint64_t)offset / 4 * (uint64_t)bitsPerItem) % 32; ++offset; bitsAvailable = 32 - startBit; if (bitsPerItem <= bitsAvailable) { value = (in[0] >> startBit) & mask; } else { // value spans 2 buffer cells uint32_t low, high; low = in[0] >> startBit; high = in[4] << bitsAvailable; value = (low | high) & mask; } *out++ = value; } } #if defined(__SSE2__) || defined(_M_IX86) || defined(_M_X64) #include #define PackedArray_uint32x4_t __m128i #define PackedArray_uint32x4_zero _mm_setzero_si128() #define PackedArray_set_uint32x4(i) _mm_set1_epi32(i) #define PackedArray_sub_uint32x4(lhs, rhs) _mm_sub_epi32(lhs, rhs) #define PackedArray_loadu_uint32x4(ptr) _mm_loadu_si128((const __m128i*)ptr) #define PackedArray_storeu_uint32x4(ptr, v) _mm_storeu_si128((__m128i*)ptr, v) #define PackedArray_load_uint32x4(ptr) _mm_load_si128((const __m128i*)ptr) #define PackedArray_store_uint32x4(ptr, v) _mm_store_si128((__m128i*)ptr, v) #define PackedArray_shl_uint32x4(v, shift) _mm_slli_epi32(v, shift) #define PackedArray_shr_uint32x4(v, shift) _mm_srli_epi32(v, shift) #define PackedArray_or_uint32x4(lhs, rhs) _mm_or_si128(lhs, rhs) #define PackedArray_and_uint32x4(lhs, rhs) _mm_and_si128(lhs, rhs) #define PackedArray_andnot_uint32x4(lhs, rhs) _mm_andnot_si128(rhs, lhs) // assumes dst bits are cleared at inserted bit positions #define PackedArray_vsli0_uint32x4(dst, src, shift) PackedArray_or_uint32x4(dst, PackedArray_shl_uint32x4(src, shift)) #elif defined(__ARM_NEON__) || defined(_M_ARM) #include #define PackedArray_uint32x4_t uint32x4_t #define PackedArray_uint32x4_zero vdupq_n_u32(0) #define PackedArray_set_uint32x4(i) vdupq_n_u32(i) #define PackedArray_sub_uint32x4(lhs, rhs) vsubq_u32(lhs, rhs) #define PackedArray_loadu_uint32x4(ptr) vld1q_u32((const uint32_t*)ptr) #define PackedArray_storeu_uint32x4(ptr, v) vst1q_u32(ptr, v) #if defined(__GNUC__) // because __builtin_assume_aligned isn't always available... typedef uint32_t __attribute__((aligned(16))) PackedArray_aligned_uint32_t; #define PackedArray_load_uint32x4(ptr) vld1q_u32((const PackedArray_aligned_uint32_t*)ptr) #define PackedArray_store_uint32x4(ptr, v) vst1q_u32((PackedArray_aligned_uint32_t*)ptr, v) #else #define PackedArray_load_uint32x4(ptr) vld1q_u32((const uint32_t*)ptr) #define PackedArray_store_uint32x4(ptr, v) vst1q_u32(ptr, v) #endif #define PackedArray_shl_uint32x4(v, shift) vshlq_u32(v, vdupq_n_s32(shift)) #define PackedArray_shr_uint32x4(v, shift) vshlq_u32(v, vdupq_n_s32(-shift)) #define PackedArray_or_uint32x4(lhs, rhs) vorrq_u32(lhs, rhs) #define PackedArray_and_uint32x4(lhs, rhs) vandq_u32(lhs, rhs) #define PackedArray_andnot_uint32x4(lhs, rhs) vbicq_u32(lhs, rhs) // assumes dst bits are cleared at inserted bit positions #define PackedArray_vsli0_uint32x4(dst, src, shift) vsliq_n_u32(dst, src, shift) #else #error unsupported SIMD platform #endif #define PACKEDARRAY_IMPL #define PACKEDARRAY_IMPL_BITS_PER_ITEM 1 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 2 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 3 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 4 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 5 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 6 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 7 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 8 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 9 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 10 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 11 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 12 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 13 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 14 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 15 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 16 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 17 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 18 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 19 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 20 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 21 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 22 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 23 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 24 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 25 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 26 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 27 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 28 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 29 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 30 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 31 #include PACKEDARRAY_SELF #define PACKEDARRAY_IMPL_BITS_PER_ITEM 32 #include PACKEDARRAY_SELF #undef PACKEDARRAY_IMPL #if !defined(PACKEDARRAY_ALIGNED_MALLOC) || !defined(PACKEDARRAY_FREE) #include #endif #if !defined(PACKEDARRAY_ALIGNED_MALLOC) #if defined (_MSC_VER) #define PACKEDARRAY_ALIGNED_MALLOC(alignment, size) _aligned_malloc(size, alignment) #elif defined (ANDROID) || defined (__ANDROID__) #define PACKEDARRAY_ALIGNED_MALLOC(alignment, size) memalign(alignment, size) #else static void* __PackedArray_aligned_malloc(size_t alignment, size_t size) { void* p = NULL; posix_memalign(&p, alignment, size); return p; } #define PACKEDARRAY_ALIGNED_MALLOC(alignment, size) __PackedArray_aligned_malloc(alignment, size) #endif #endif #if !defined(PACKEDARRAY_FREE) #if defined (_MSC_VER) #define PACKEDARRAY_FREE(p) _aligned_free(p) #else #define PACKEDARRAY_FREE(p) free(p) #endif #endif PackedArray* PackedArray_create(uint32_t bitsPerItem, uint32_t count) { PackedArray* a; size_t bufferSize; PACKEDARRAY_ASSERT(bitsPerItem > 0); PACKEDARRAY_ASSERT(bitsPerItem <= 32); bufferSize = sizeof(uint32_t) * (((uint64_t)count / 4 * (uint64_t)bitsPerItem + 31) / 32 * 4); bufferSize += count < 4 ? sizeof(uint32_t) * count : sizeof(uint32_t) * 4; a = (PackedArray*)PACKEDARRAY_ALIGNED_MALLOC(16, sizeof(PackedArray) + bufferSize); PACKEDARRAY_ASSERT((uint64_t)a->buffer % 16 == 0); if (a != NULL) { a->buffer[bufferSize / sizeof(uint32_t) - 1] = 0; a->bitsPerItem = bitsPerItem; a->count = count; } return a; } void PackedArray_destroy(PackedArray* a) { PACKEDARRAY_ASSERT(a); PACKEDARRAY_FREE(a); } void PackedArray_pack(PackedArray* a, const uint32_t offset, const uint32_t* in, uint32_t count) { PACKEDARRAY_ASSERT(a != NULL); PACKEDARRAY_ASSERT(in != NULL); switch (a->bitsPerItem) { case 1: __PackedArray_pack_1(a->buffer, offset, in, count); break; case 2: __PackedArray_pack_2(a->buffer, offset, in, count); break; case 3: __PackedArray_pack_3(a->buffer, offset, in, count); break; case 4: __PackedArray_pack_4(a->buffer, offset, in, count); break; case 5: __PackedArray_pack_5(a->buffer, offset, in, count); break; case 6: __PackedArray_pack_6(a->buffer, offset, in, count); break; case 7: __PackedArray_pack_7(a->buffer, offset, in, count); break; case 8: __PackedArray_pack_8(a->buffer, offset, in, count); break; case 9: __PackedArray_pack_9(a->buffer, offset, in, count); break; case 10: __PackedArray_pack_10(a->buffer, offset, in, count); break; case 11: __PackedArray_pack_11(a->buffer, offset, in, count); break; case 12: __PackedArray_pack_12(a->buffer, offset, in, count); break; case 13: __PackedArray_pack_13(a->buffer, offset, in, count); break; case 14: __PackedArray_pack_14(a->buffer, offset, in, count); break; case 15: __PackedArray_pack_15(a->buffer, offset, in, count); break; case 16: __PackedArray_pack_16(a->buffer, offset, in, count); break; case 17: __PackedArray_pack_17(a->buffer, offset, in, count); break; case 18: __PackedArray_pack_18(a->buffer, offset, in, count); break; case 19: __PackedArray_pack_19(a->buffer, offset, in, count); break; case 20: __PackedArray_pack_20(a->buffer, offset, in, count); break; case 21: __PackedArray_pack_21(a->buffer, offset, in, count); break; case 22: __PackedArray_pack_22(a->buffer, offset, in, count); break; case 23: __PackedArray_pack_23(a->buffer, offset, in, count); break; case 24: __PackedArray_pack_24(a->buffer, offset, in, count); break; case 25: __PackedArray_pack_25(a->buffer, offset, in, count); break; case 26: __PackedArray_pack_26(a->buffer, offset, in, count); break; case 27: __PackedArray_pack_27(a->buffer, offset, in, count); break; case 28: __PackedArray_pack_28(a->buffer, offset, in, count); break; case 29: __PackedArray_pack_29(a->buffer, offset, in, count); break; case 30: __PackedArray_pack_30(a->buffer, offset, in, count); break; case 31: __PackedArray_pack_31(a->buffer, offset, in, count); break; case 32: __PackedArray_pack_32(a->buffer, offset, in, count); break; } } void PackedArray_unpack(const PackedArray* a, const uint32_t offset, uint32_t* out, uint32_t count) { PACKEDARRAY_ASSERT(a != NULL); PACKEDARRAY_ASSERT(out != NULL); switch (a->bitsPerItem) { case 1: __PackedArray_unpack_1(a->buffer, offset, out, count); break; case 2: __PackedArray_unpack_2(a->buffer, offset, out, count); break; case 3: __PackedArray_unpack_3(a->buffer, offset, out, count); break; case 4: __PackedArray_unpack_4(a->buffer, offset, out, count); break; case 5: __PackedArray_unpack_5(a->buffer, offset, out, count); break; case 6: __PackedArray_unpack_6(a->buffer, offset, out, count); break; case 7: __PackedArray_unpack_7(a->buffer, offset, out, count); break; case 8: __PackedArray_unpack_8(a->buffer, offset, out, count); break; case 9: __PackedArray_unpack_9(a->buffer, offset, out, count); break; case 10: __PackedArray_unpack_10(a->buffer, offset, out, count); break; case 11: __PackedArray_unpack_11(a->buffer, offset, out, count); break; case 12: __PackedArray_unpack_12(a->buffer, offset, out, count); break; case 13: __PackedArray_unpack_13(a->buffer, offset, out, count); break; case 14: __PackedArray_unpack_14(a->buffer, offset, out, count); break; case 15: __PackedArray_unpack_15(a->buffer, offset, out, count); break; case 16: __PackedArray_unpack_16(a->buffer, offset, out, count); break; case 17: __PackedArray_unpack_17(a->buffer, offset, out, count); break; case 18: __PackedArray_unpack_18(a->buffer, offset, out, count); break; case 19: __PackedArray_unpack_19(a->buffer, offset, out, count); break; case 20: __PackedArray_unpack_20(a->buffer, offset, out, count); break; case 21: __PackedArray_unpack_21(a->buffer, offset, out, count); break; case 22: __PackedArray_unpack_22(a->buffer, offset, out, count); break; case 23: __PackedArray_unpack_23(a->buffer, offset, out, count); break; case 24: __PackedArray_unpack_24(a->buffer, offset, out, count); break; case 25: __PackedArray_unpack_25(a->buffer, offset, out, count); break; case 26: __PackedArray_unpack_26(a->buffer, offset, out, count); break; case 27: __PackedArray_unpack_27(a->buffer, offset, out, count); break; case 28: __PackedArray_unpack_28(a->buffer, offset, out, count); break; case 29: __PackedArray_unpack_29(a->buffer, offset, out, count); break; case 30: __PackedArray_unpack_30(a->buffer, offset, out, count); break; case 31: __PackedArray_unpack_31(a->buffer, offset, out, count); break; case 32: __PackedArray_unpack_32(a->buffer, offset, out, count); break; } } void PackedArray_set(PackedArray* a, const uint32_t offset, const uint32_t in) { uint32_t* __restrict out; uint32_t bitsPerItem; uint32_t startBit; uint32_t bitsAvailable; uint32_t mask; PACKEDARRAY_ASSERT(a != NULL); bitsPerItem = a->bitsPerItem; out = &a->buffer[4 * (((uint64_t)offset / 4 * (uint64_t)bitsPerItem) / 32) + (offset % 4)]; startBit = ((uint64_t)offset / 4 * (uint64_t)bitsPerItem) % 32; bitsAvailable = 32 - startBit; mask = (uint32_t)(1ULL << bitsPerItem) - 1; PACKEDARRAY_ASSERT(0 == (~mask & in)); if (bitsPerItem <= bitsAvailable) { out[0] = (out[0] & ~(mask << startBit)) | (in << startBit); } else { // value spans 2 buffer cells uint32_t low, high; low = in << startBit; high = in >> bitsAvailable; out[0] = (out[0] & ~(mask << startBit)) | low; out[4] = (out[4] & ~(mask >> (32 - startBit))) | high; } } uint32_t PackedArray_get(const PackedArray* a, const uint32_t offset) { const uint32_t* __restrict in; uint32_t bitsPerItem; uint32_t startBit; uint32_t bitsAvailable; uint32_t mask; uint32_t out; PACKEDARRAY_ASSERT(a != NULL); bitsPerItem = a->bitsPerItem; in = &a->buffer[4 * (((uint64_t)offset / 4 * (uint64_t)bitsPerItem) / 32) + (offset % 4)]; startBit = ((uint64_t)offset / 4 * (uint64_t)bitsPerItem) % 32; bitsAvailable = 32 - startBit; mask = (uint32_t)(1ULL << bitsPerItem) - 1; if (bitsPerItem <= bitsAvailable) { out = (in[0] >> startBit) & mask; } else { // value spans 2 buffer cells uint32_t low, high; low = in[0] >> startBit; high = in[4] << (32 - startBit); out = low ^ ((low ^ high) & (mask >> bitsAvailable << bitsAvailable)); } return out; } uint32_t PackedArray_bufferSize(const PackedArray* a) { size_t bufferSize; uint32_t bitsPerItem, count; PACKEDARRAY_ASSERT(a != NULL); bitsPerItem = a->bitsPerItem; count = a->count; bufferSize = ((uint64_t)count / 4 * (uint64_t)bitsPerItem + 31) / 32 * 4; bufferSize += count < 4 ? count : 4; return (uint32_t)bufferSize; } #if !(defined(_MSC_VER) && _MSC_VER >= 1400) && !defined(__GNUC__) // log base 2 of an integer, aka the position of the highest bit set static uint32_t __PackedArray_log2(uint32_t v) { // references // http://aggregate.org/MAGIC // http://graphics.stanford.edu/~seander/bithacks.html static const uint32_t multiplyDeBruijnBitPosition[32] = { 0, 9, 1, 10, 13, 21, 2, 29, 11, 14, 16, 18, 22, 25, 3, 30, 8, 12, 20, 28, 15, 17, 24, 7, 19, 27, 23, 6, 26, 5, 4, 31 }; v |= v >> 1; v |= v >> 2; v |= v >> 4; v |= v >> 8; v |= v >> 16; return multiplyDeBruijnBitPosition[(uint32_t)(v * 0x7C4ACDDU) >> 27]; } #endif // position of the highest bit set static int __PackedArray_highestBitSet(uint32_t v) { #if defined(_MSC_VER) && _MSC_VER >= 1400 unsigned long index; return _BitScanReverse(&index, v) ? index : -1; #elif defined(__GNUC__) return v == 0 ? -1 : 31 - __builtin_clz(v); #else return v != 0 ? __PackedArray_log2(v) : -1; #endif } uint32_t PackedArray_computeBitsPerItem(const uint32_t* in, uint32_t count) { uint32_t i, in_max, bitsPerItem; in_max = 0; for (i = 0; i < count; ++i) in_max = in[i] > in_max ? in[i] : in_max; bitsPerItem = __PackedArray_highestBitSet(in_max) + 1; return bitsPerItem == 0 ? 1 : bitsPerItem; } // - 8< ------------------------------------------------------------------------ #if defined(PACKEDARRAY_SELF_TEST) && defined(PACKEDARRAY_SELF_BENCH) #error choose either PACKEDARRAY_SELF_TEST or PACKEDARRAY_SELF_BENCH #endif #if defined(PACKEDARRAY_SELF_TEST) #undef NDEBUG // we want asserts #include #include #include // memcmp static void PackedArray_pack_reference(PackedArray* a, uint32_t offset, const uint32_t* in, uint32_t count) { uint32_t* __restrict out; uint32_t bitsPerItem; uint32_t startBit; uint32_t bitsAvailable; uint32_t mask; assert(a != NULL); assert(in != NULL); bitsPerItem = a->bitsPerItem; mask = (uint32_t)((1ULL << bitsPerItem) - 1); while (count--) { uint32_t value = *in++; assert(0 == (~mask & value)); out = &a->buffer[((uint64_t)offset / 4 * (uint64_t)bitsPerItem) / 32 * 4 + offset % 4]; startBit = ((uint64_t)offset / 4 * (uint64_t)bitsPerItem) % 32; ++offset; bitsAvailable = 32 - startBit; if (bitsPerItem <= bitsAvailable) { out[0] = (out[0] & ~(mask << startBit)) | (value << startBit); } else { // value spans 2 buffer cells uint32_t low, high; low = value << startBit; high = value >> bitsAvailable; out[0] = (out[0] & ~(mask << startBit)) | low; out[4] = (out[4] & ~(mask >> bitsAvailable)) | high; } } } static void PackedArray_unpack_reference(const PackedArray* a, uint32_t offset, uint32_t* out, uint32_t count) { const uint32_t* __restrict in; uint32_t bitsPerItem; uint32_t startBit; uint32_t bitsAvailable; uint32_t mask; assert(a != NULL); assert(out != NULL); bitsPerItem = a->bitsPerItem; mask = (uint32_t)((1ULL << bitsPerItem) - 1); while (count--) { uint32_t value; in = &a->buffer[((uint64_t)offset / 4 * (uint64_t)bitsPerItem) / 32 * 4 + offset % 4]; startBit = ((uint64_t)offset / 4 * (uint64_t)bitsPerItem) % 32; ++offset; bitsAvailable = 32 - startBit; if (bitsPerItem <= bitsAvailable) { value = (in[0] >> startBit) & mask; } else { // value spans 2 buffer cells uint32_t low, high; low = in[0] >> startBit; high = in[4] << bitsAvailable; value = low ^ ((low ^ high) & (mask >> bitsAvailable << bitsAvailable)); } *out++ = value; } } int main(void) { uint32_t bitsPerItem; printf("-- PackedArray self test -------------------------------------------------------\n"); printf("\n"); printf("sizeof(PackedArray) = %d\n", (int)sizeof(PackedArray)); printf("\n"); printf("1 by 1 packing / unpacking:\n"); for (bitsPerItem = 1; bitsPerItem <= 32; ++bitsPerItem) { uint32_t mask = (uint32_t)(1ULL << bitsPerItem) - 1; int count; for (count = 1; count <= 1024; ++count) { PackedArray* a1 = PackedArray_create(bitsPerItem, count); PackedArray* a2 = PackedArray_create(bitsPerItem, count); int i; assert(a1->count == (uint32_t)count); assert(a2->count == (uint32_t)count); assert(a1->bitsPerItem == bitsPerItem); assert(a2->bitsPerItem == bitsPerItem); assert(PackedArray_bufferSize(a1) == PackedArray_bufferSize(a2)); for (i = 0; i < (int)PackedArray_bufferSize(a1); ++i) a1->buffer[i] = a2->buffer[i] = rand(); for (i = 0; i < count; ++i) { uint32_t v1, v2; v1 = rand() & mask; v2 = v1 + 1; PackedArray_pack(a1, i, &v1, 1); PackedArray_pack_reference(a2, i, &v1, 1); assert(memcmp(a1->buffer, a2->buffer, sizeof(a1->buffer[0]) * PackedArray_bufferSize(a1)) == 0); PackedArray_set(a1, i, v1); assert(memcmp(a1->buffer, a2->buffer, sizeof(a1->buffer[0]) * PackedArray_bufferSize(a1)) == 0); PackedArray_unpack(a1, i, &v2, 1); assert(v1 == v2); PackedArray_unpack_reference(a2, i, &v2, 1); assert(v1 == v2); v2 = PackedArray_get(a2, i); assert(v1 == v2); } for (i = count - 1; i >= 0; --i) { uint32_t v1, v2; v1 = rand() & mask; v2 = v1 + 1; PackedArray_pack(a1, i, &v1, 1); PackedArray_pack_reference(a2, i, &v1, 1); assert(memcmp(a1->buffer, a2->buffer, sizeof(a1->buffer[0]) * PackedArray_bufferSize(a1)) == 0); PackedArray_set(a1, i, v1); assert(memcmp(a1->buffer, a2->buffer, sizeof(a1->buffer[0]) * PackedArray_bufferSize(a1)) == 0); PackedArray_unpack(a1, i, &v2, 1); assert(v1 == v2); PackedArray_unpack_reference(a2, i, &v2, 1); assert(v1 == v2); v2 = PackedArray_get(a2, i); assert(v1 == v2); } PackedArray_destroy(a1); PackedArray_destroy(a2); } printf(" %2d bits per item -- success.\n", bitsPerItem); } printf("\n"); printf("bulk packing / unpacking:\n"); for (bitsPerItem = 1; bitsPerItem <= 32; ++bitsPerItem) { uint32_t mask = (uint32_t)(1ULL << bitsPerItem) - 1; int count; for (count = 1; count <= 128; ++count) { uint32_t* v1; uint32_t* v2; PackedArray* a1; PackedArray* a2; int i, j; v1 = (uint32_t*)malloc(sizeof(uint32_t) * count); assert(v1 != NULL); v2 = (uint32_t*)malloc(sizeof(uint32_t) * count); assert(v2 != NULL); a1 = PackedArray_create(bitsPerItem, count); assert(a1 != NULL); a2 = PackedArray_create(bitsPerItem, count); assert(a2 != NULL); for (i = 0; i < (int)PackedArray_bufferSize(a1); ++i) a1->buffer[i] = a2->buffer[i] = rand(); for (i = 0; i < count; ++i) v1[i] = rand() & mask; assert(bitsPerItem >= PackedArray_computeBitsPerItem(v1, count)); for (i = 0; i < count; ++i) { for (j = 1; j <= count - i; ++j) { PackedArray_pack(a1, i, v1, j); PackedArray_pack_reference(a2, i, v1, j); assert(memcmp(a1->buffer, a2->buffer, sizeof(a1->buffer[0]) * PackedArray_bufferSize(a1)) == 0); PackedArray_unpack(a1, i, v2, j); assert(bitsPerItem >= PackedArray_computeBitsPerItem(v2, j)); assert(memcmp(v1, v2, j * sizeof(uint32_t)) == 0); PackedArray_unpack_reference(a2, i, v2, j); assert(memcmp(v1, v2, j * sizeof(uint32_t)) == 0); } } PackedArray_destroy(a1); PackedArray_destroy(a2); free(v1); free(v2); } printf(" %2d bits per item -- success.\n", bitsPerItem); } return 0; } #elif defined(PACKEDARRAY_SELF_BENCH) // #if defined(PACKEDARRAY_SELF_TEST) #ifndef NDEBUG #error please define NDEBUG to inhibit asserts when compiling the benchmark #endif #include #include #include #ifndef MIN #define MIN(x, y) (((x) < (y)) ? (x) : (y)) #endif #ifndef MAX #define MAX(x, y) (((x) < (y)) ? (y) : (x)) #endif #ifdef _MSC_VER #pragma warning(push, 3) #include #pragma warning(pop) static double getChronometerTime(void) { LARGE_INTEGER frequency; LARGE_INTEGER t; QueryPerformanceFrequency(&frequency); QueryPerformanceCounter(&t); return (double)t.QuadPart / (double)frequency.QuadPart * 1000; } #else #include static double getChronometerTime() { struct timeval now = { 0 }; gettimeofday(&now, NULL); return (double)now.tv_sec + (double)now.tv_usec * 1e-6; } #endif #define LOOP_COUNT 1000 static double bench_memcpy(uint32_t* in, uint32_t* out, uint32_t count) { double start, end; uint32_t i; start = getChronometerTime(); for (i = 0; i < LOOP_COUNT; ++i) memcpy(out, in, count * sizeof(uint32_t)); end = getChronometerTime(); return 1e6 * (end - start) / LOOP_COUNT; } static double bench_loopcpy(uint32_t* in, uint32_t* out, uint32_t count) { double start, end; uint32_t i; start = getChronometerTime(); for (i = 0; i < LOOP_COUNT; ++i) { uint32_t j; for (j = 0; j < count; ++j) out[j] = in[j]; } end = getChronometerTime(); return 1e6 * (end - start) / LOOP_COUNT; } static double bench_pack(uint32_t* in, PackedArray* out, uint32_t count) { double start, end; int i; start = getChronometerTime(); for (i = 0; i < LOOP_COUNT; ++i) PackedArray_pack(out, 0, in, count); end = getChronometerTime(); return 1e6 * (end - start) / LOOP_COUNT; } static double bench_unpack(PackedArray* in, uint32_t* out, uint32_t count) { double start, end; int i; start = getChronometerTime(); for (i = 0; i < LOOP_COUNT; ++i) PackedArray_unpack(in, 0, out, count); end = getChronometerTime(); return 1e6 * (end - start) / LOOP_COUNT; } #define MAX_ELEMENT_COUNT (1 << 18) #define LOG2_MAX_ELEMENT_COUNT 18 int main(void) { double start, end; uint32_t* b1; uint32_t* b2; uint32_t count, bitsPerItem; PackedArray** packed; uint32_t i; double* speed_memcpy; double avg_memcpy, min_memcpy, max_memcpy; double* speed_loopcpy; double avg_loopcpy, min_loopcpy, max_loopcpy; double* speed_pack[32]; double avg_pack, min_pack, max_pack; double* speed_unpack[32]; double avg_unpack, min_unpack, max_unpack; printf("-- PackedArray self bench ------------------------------------------------------\n"); start = getChronometerTime(); b1 = (uint32_t*)malloc(sizeof(uint32_t) * MAX_ELEMENT_COUNT); assert(b1 != NULL); b2 = (uint32_t*)malloc(sizeof(uint32_t) * MAX_ELEMENT_COUNT); assert(b2 != NULL); packed = (PackedArray**)malloc(sizeof(PackedArray*) * 32); assert(packed != NULL); for (i = 0; i < 32; ++i) packed[i] = PackedArray_create(i + 1, MAX_ELEMENT_COUNT); for (i = 0; i < MAX_ELEMENT_COUNT; ++i) b1[i] = rand(); speed_memcpy = (double*)malloc(sizeof(double) * (LOG2_MAX_ELEMENT_COUNT + 1)); assert(speed_memcpy != NULL); avg_memcpy = 0; min_memcpy = DBL_MAX; max_memcpy = 0; printf("memcpy:\n"); printf("bits\tsize (B)\ttime (µs)\tspeed (B/µs)\n"); for (count = 1, i = 0; count <= MAX_ELEMENT_COUNT; count *= 2, ++i) { double elapsed = bench_memcpy(b1, b2, count); double speed = count * sizeof(uint32_t) / elapsed; printf("%4d\t%8d\t%9.3f\t%12.3f\n", 32, (uint32_t)(count * sizeof(uint32_t)), elapsed, speed); avg_memcpy += speed; min_memcpy = MIN(min_memcpy, speed); max_memcpy = MAX(max_memcpy, speed); speed_memcpy[i] = speed; } avg_memcpy /= i; printf("avg (B/µs)\tmin (B/µs)\tmax (B/µs)\n"); printf("%10.3f\t%10.3f\t%10.3f\n", avg_memcpy, min_memcpy, max_memcpy); printf("\n"); speed_loopcpy = (double*)malloc(sizeof(double) * (LOG2_MAX_ELEMENT_COUNT + 1)); assert(speed_loopcpy != NULL); avg_loopcpy = 0; min_loopcpy = DBL_MAX; max_loopcpy = 0; printf("loopcpy:\n"); printf("bits\tsize (B)\ttime (µs)\tspeed (B/µs)\n"); for (count = 1, i = 0; count <= MAX_ELEMENT_COUNT; count *= 2, ++i) { double elapsed = bench_loopcpy(b1, b2, count); double speed = count * sizeof(uint32_t) / elapsed; printf("%4d\t%8d\t%9.3f\t%12.3f\n", 32, (uint32_t)(count * sizeof(uint32_t)), elapsed, speed); avg_loopcpy += speed; min_loopcpy = MIN(min_loopcpy, speed); max_loopcpy = MAX(max_loopcpy, speed); speed_loopcpy[i] = speed; } avg_loopcpy /= i; printf("avg (B/µs)\tmin (B/µs)\tmax (B/µs)\n"); printf("%10.3f\t%10.3f\t%10.3f\n", avg_loopcpy, min_loopcpy, max_loopcpy); printf("\n"); for (bitsPerItem = 1; bitsPerItem <= 32; ++bitsPerItem) { avg_pack = 0; min_pack = DBL_MAX; max_pack = 0; avg_unpack = 0; min_unpack = DBL_MAX; max_unpack = 0; printf("pack:\t \t \t \t"); printf("unpack:\t \t \t \t"); printf("\n"); printf("bits\tsize (B)\ttime (µs)\tspeed (B/µs)"); printf("\t"); printf("bits\tsize (B)\ttime (µs)\tspeed (B/µs)"); printf("\n"); speed_pack[bitsPerItem - 1] = (double*)malloc(sizeof(double) * (LOG2_MAX_ELEMENT_COUNT + 1)); assert(speed_pack[bitsPerItem - 1] != NULL); speed_unpack[bitsPerItem - 1] = (double*)malloc(sizeof(double) * (LOG2_MAX_ELEMENT_COUNT + 1)); assert(speed_unpack[bitsPerItem - 1] != NULL); for (count = 1, i = 0; count <= MAX_ELEMENT_COUNT; count *= 2, ++i) { uint32_t mask = (uint32_t)(1ULL << bitsPerItem) - 1; uint32_t j; double elapsed, speed; for (j = 0; j < count; ++j) b2[j] = b1[j] & mask; elapsed = bench_pack(b2, packed[bitsPerItem - 1], count); speed = count * sizeof(uint32_t) / elapsed; printf("%4d\t%8d\t%9.3f\t%12.3f", bitsPerItem, (uint32_t)(count * sizeof(uint32_t)), elapsed, speed); avg_pack += speed; min_pack = MIN(min_pack, speed); max_pack = MAX(max_pack, speed); speed_pack[bitsPerItem - 1][i] = speed; printf("\t"); elapsed = bench_unpack(packed[bitsPerItem - 1], b2, count); speed = count * sizeof(uint32_t) / elapsed; printf("%4d\t%8d\t%9.3f\t%12.3f", bitsPerItem, (uint32_t)(count * sizeof(uint32_t)), elapsed, speed); avg_unpack += speed; min_unpack = MIN(min_unpack, speed); max_unpack = MAX(max_unpack, speed); speed_unpack[bitsPerItem - 1][i] = speed; printf("\n"); } printf("%d\n",i); assert(i == LOG2_MAX_ELEMENT_COUNT + 1); printf("avg (B/µs)\tmin (B/µs)\tmax (B/µs)"); printf("\t\t"); printf("avg (B/µs)\tmin (B/µs)\tmax (B/µs)"); printf("\n"); avg_pack /= i; printf("%10.3f\t%10.3f\t%10.3f", avg_pack, min_pack, max_pack); printf("\t\t"); avg_unpack /= i; printf("%10.3f\t%10.3f\t%10.3f", avg_unpack, min_unpack, max_unpack); printf("\n"); printf("\n"); } printf("\n"); printf("stats by bits per item\n"); printf("pack:\t \t \t \t"); printf("unpack:\t \t \t \t"); printf("\n"); printf("bits\tavg (B/µs)\tmin (B/µs)\tmax (B/µs)"); printf("\t"); printf("avg (B/µs)\tmin (B/µs)\tmax (B/µs)"); printf("\n"); for (bitsPerItem = 1; bitsPerItem <= 32; ++bitsPerItem) { avg_pack = 0; min_pack = DBL_MAX; max_pack = 0; avg_unpack = 0; min_unpack = DBL_MAX; max_unpack = 0; for (count = 1, i = 0; count <= MAX_ELEMENT_COUNT; count *= 2, ++i) { double speed; speed = speed_pack[bitsPerItem - 1][i]; avg_pack += speed; min_pack = MIN(min_pack, speed); max_pack = MAX(max_pack, speed); speed = speed_unpack[bitsPerItem - 1][i]; avg_unpack += speed; min_unpack = MIN(min_unpack, speed); max_unpack = MAX(max_unpack, speed); } assert(i == LOG2_MAX_ELEMENT_COUNT + 1); printf("%4d\t", bitsPerItem); avg_pack /= i; printf("%10.3f\t%10.3f\t%10.3f", avg_pack, min_pack, max_pack); printf("\t"); avg_unpack /= i; printf("%10.3f\t%10.3f\t%10.3f", avg_unpack, min_unpack, max_unpack); printf("\n"); } printf("\n"); printf("stats by size\n"); printf("pack:\t \t \t \t"); printf("unpack:\t \t \t \t"); printf("\n"); printf("size(B)\tavg (B/µs)\tmin (B/µs)\tmax (B/µs)"); printf("\t"); printf("avg (B/µs)\tmin (B/µs)\tmax (B/µs)"); printf("\n"); for (count = 1, i = 0; count <= MAX_ELEMENT_COUNT; count *= 2, ++i) { avg_pack = 0; min_pack = DBL_MAX; max_pack = 0; avg_unpack = 0; min_unpack = DBL_MAX; max_unpack = 0; for (bitsPerItem = 1; bitsPerItem <= 32; ++bitsPerItem) { double speed; speed = speed_pack[bitsPerItem - 1][i]; avg_pack += speed; min_pack = MIN(min_pack, speed); max_pack = MAX(max_pack, speed); speed = speed_unpack[bitsPerItem - 1][i]; avg_unpack += speed; min_unpack = MIN(min_unpack, speed); max_unpack = MAX(max_unpack, speed); } printf("%7d\t", (uint32_t)sizeof(uint32_t) * count); avg_pack /= 32; printf("%10.3f\t%10.3f\t%10.3f", avg_pack, min_pack, max_pack); printf("\t"); avg_unpack /= 32; printf("%10.3f\t%10.3f\t%10.3f", avg_unpack, min_unpack, max_unpack); printf("\n"); } printf("\n"); free(b1); free(b2); free(speed_memcpy); free(speed_loopcpy); for (i = 0; i < 32; ++i) { PackedArray_destroy(packed[i]); free(speed_pack[i]); free(speed_unpack[i]); } free(packed); end = getChronometerTime(); printf("total time (s): %f\n", (end - start)); printf("\n"); return 0; } #endif // #elif defined(PACKEDARRAY_SELF_BENCH) #endif // #ifdef PACKEDARRAY_IMPL ================================================ FILE: README.md ================================================ # PackedArray: random access array of tightly packed unsigned integers [![Build Status](https://travis-ci.org/gpakosz/PackedArray.png?branch=master)](https://travis-ci.org/gpakosz/PackedArray) ## TLDR *PackedArray comes to the rescue when you're in a desperate need for an uint9_t or uint17_t array.* ## What? When you want to hold an unordered sequence of unsigned integers into memory, the C programming language lets you choose among 4 data types: - `uint8_t` - `uint16_t` - `uint32_t` - `uint64_t` If your numbers are within the [0, 100000] range, only 17 bits per integer are needed since 217 = 131072. However, you can't use an array of `uint16_t` because 16 bits are not enough to store numbers between 65536 and 100000. When you use the next available type, `uint32_t`, you're wasting 15 bits per integer which represents a 47% overhead in terms of storage requirements. `PackedArray` saves memory by packing integers/items together at the bit-level:
b0 b1 b2 ...
i0 i1 i2 i3 i4 i5 i6 i7 i8 i9 ...
A `PackedArray` is backed by an `uint32_t` buffer. Several items end up being stored inside the same buffer cell, e.g. i0, i1, and i2. Some items span two buffer cells, e.g. i3, and i7. `PackedArray` is responsible for encoding/decoding items into/from the storage buffer. `PackedArraySIMD` is a `PackedArray` variant that makes use of SSE2 or NEON instructions. Going SIMD processes integers 4 by 4 but imposes an interleaved layout in the storage buffer. `PackedArraySIMD` interleaved layout, 13 bits per item:
b0 b1 b2 b3 ...
i0 i4 i8a i1 i5 i9a i2 i6 i10a i3 i7 i11a i8b ...
As a consequence, the data layout of `PackedArraySIMD` isn't compatible with its non SIMD counterpart. In other words, you cannot use `PackedArray` to unpack data packed with `PackedArraySIMD` or the other way around. It is also worth noting the implementations of `PackedArraySIMD_pack` and `PackedArraySIMD_unpack` require more plumbing than their non-SIMD counterparts. Additional computations are needed to find out and adjust a data window that can be processed 4 by 4 with SIMD instructions. `PackedArray` and `PackedArraySIMD` are released under the WTFPL v2 license. For more information, see the [PackedArray announcement on my personal website]. [PackedArray announcement on my personal website]: http://pempek.net/articles/2013/08/03/packedarray-random-access-array-tightly-packed-unsigned-integers/ ## Why? `PackedArray` is designed as a drop-in replacement for an unsigned integer array. I couldn't find such a data structure in the wild, so I implemented one. Instead of writing: uint32_t* a = (uint32_t*)malloc(sizeof(uint32_t) * count); ... value = a[i]; ... a[j] = value; You write: PackedArray* a = PackedArray_create(bitsPerItem, count); ... value = PackedArray_get(a, i); ... PackedArray_set(a, j, value); The `PackedArray_computeBitsPerItem` helper scans a `uint32_t` array and returns the number of bits needed to create a `PackedArray` capable of holding its content. There are also `PackedArray_pack` and `PackedArray_unpack` that operate on several items in a row. Those two could really have been named `PackedArray_write` and `PackedArray_read` but I decided "pack" / "unpack" conveys better something is happening under the hood. // bulk packing / unpacking PackedArray_pack(a, j, in, count); PackedArray_unpack(a, j, out, count); // the following are semantically equivalent PackedArray_set(a, j, value); PackedArray_pack(a, j, &value, 1); value = PackedArray_get(a, i); PackedArray_unpack(a, i, &value, 1); -------------------------------------------------------------------------------- ## Compiling In order to use `PackedArray` or `PackedArraySIMD` in your own project, you just have to bring in the two `PackedArray.h` and `PackedArray.c` (or `PackedArraySIMD.c`) files. It's that simple. You can customize `PackedArray.c`'s behavior by defining the following macros: - `PACKEDARRAY_ASSERT` - `PACKEDARRAY_MALLOC` - `PACKEDARARY_FREE` You can customize `PackedArraySIMD.c`'s behavior by defining the following macros: - `PACKEDARRAY_ASSERT` - `PACKEDARRAY_ALIGNED_MALLOC` - `PACKEDARARY_FREE` `PackedArray.c` and `PackedArraySIMD.c` can compile themselves into either a test program or a micro-benchmark. For that, you have to use one of the following preprocessor directives: - `PACKEDARRAY_SELF_TEST` - `PACKEDARRAY_SELF_BENCH` For example, from command line: $ cc -o PackedArraySelfTest -DPACKEDARRAY_SELF_TEST -O2 -g PackedArray.c $ cc -o PackedArraySelfBench -DPACKEDARRAY_SELF_BENCH -DNDEBUG -O2 -g PackedArray.c $ cc -o PackedArraySIMDSelfTest -DPACKEDARRAY_SELF_TEST -O2 -g PackedArraySIMD.c $ cc -o PackedArraySIMDSelfBench -DPACKEDARRAY_SELF_BENCH -DNDEBUG -O2 -g PackedArraySIMD.c ### Compiling for Windows There is a Visual Studio 2012 solution in the `_win-vs11/` folder. ### Compiling for Linux or Mac There is a GNU Make 3.81 `MakeFile` in the `_gnu-make/` folder: $ make -C _gnu-make/ ### Compiling for Mac See above if you want to compile from command line. Otherwise there is an Xcode project located in the `_mac-xcode/` folder. ### Compiling for iOS There is an Xcode project located in the `_ios-xcode/` folder. If you prefer compiling from command line and deploying to a jailbroken device through SSH, use: $ make -C _gnu-make/ binsubdir=ios CC="$(xcrun --sdk iphoneos --find clang) -isysroot $(xcrun --sdk iphoneos --show-sdk-path) -arch armv7 -arch armv7s -arch arm64" postbuild="codesign -s 'iPhone Developer'" ### Compiling for Android You will have to install the Android NDK, and point the `$NDK_ROOT` environment variable to the NDK path: e.g. `export NDK_ROOT=/opt/android-ndk` (without a trailing `/` character). Next, the easy way is to make a standalone Android toolchain with the following command: $ $NDK_ROOT/build/tools/make-standalone-toolchain.sh --system=$(uname -s | tr [A-Z] [a-z])-$(uname -m) --platform=android-3 --toolchain=arm-linux-androideabi-clang3.3 --install-dir=/tmp/android-clang Now you can compile the self test and self benchmark programs by running: $ make -C _gnu-make/ binsubdir=android CC=/tmp/android-clang/bin/clang CFLAGS='-march=armv7-a -mfloat-abi=softfp -mfpu=neon -O2' -------------------------------------------------------------------------------- ## Implementation details, what the hell is going on? First, in `PackedArray.c` or `PackedArraySIMD.c`, everything that comes below the `- 8< ----` marker is the code for the self test and self micro-benchmark programs and can be discarded if you really want to: If you want to cut down your anxiety, you can use the provided GNU Makefile and invoke: $ make -C _gnu-make/ cut This produces the `PackedArray.cut.c` and `PackedArraySIMD.cut.c` files. You may also be troubled by `PackedArray.c` and `PackedArraySIMD.c` including themselves with `#include PACKEDARRAY_SELF`. By combining preprocessing tricks and including themselves, `PackedArray.c` and `PackedArraySIMD.c` "generate the code" for the unrolled pack and unpack implementations. By default `PACKEDARRAY_SELF` is defined to `"PackedArray.c"` which assumes the compiler is going to look for the file in the same directory as the file from which the `#include` statement is being evaluated. This helps compiling when the build system refers to the source files with relative paths. Depending on your compiler/build system combination you may want to override `PACKEDARRAY_SELF` to `__FILE__`. If you want to see the generated code, you can use the provided GNU Makefile and invoke: $ make -C _gnu-make/ preprocess This produces the `PackedArray.pp.c` and `PackedArraySIMD.pp.c` files. -------------------------------------------------------------------------------- If you find `PackedArray` or `PackedArraySIMD` useful and decide to use it in your own projects please drop me a line [@gpakosz]. If you use it in a commercial project, consider using [Gittip]. [@gpakosz]: https://twitter.com/gpakosz [Gittip]: https://www.gittip.com/gpakosz/ ================================================ FILE: _gnu-make/Makefile ================================================ .PHONY: build test preprocess cut assembly clean # directories ifeq ($(realpath .),) $(error your version of Make doesn't support $$(realpath names...) - please use GNU Make 3.81 or later) endif ifeq ($(platform),) __uname_s := $(shell sh -c 'uname -s 2>/dev/null | tr [A-Z] [a-z] || echo unknown-platform') __uname_m := $(shell sh -c 'uname -m 2>/dev/null | tr [A-Z] [a-z] || echo unknown-architecture') ifeq ($(__uname_s),linux) override platform := linux override architecture := $(__uname_m) endif ifeq ($(__uname_s),darwin) override platform := mac override architecture := $(__uname_m) endif endif ifeq ($(architecture),) override architecture := unknown-architecture endif prefix := $(realpath ..) srcdir := $(realpath ..) buildir := $(realpath .)/build binsubdir := $(platform)-$(architecture) bindir := $(prefix)/bin/$(binsubdir) CFLAGS := -O2 -g define _generate_rules .PHONY: build-$(1) build: build-$(1) build-$(1): $(bindir)/$(1)SelfTest $(bindir)/$(1)SelfBench $(bindir)/$(1)SelfTest: $(srcdir)/$(1).c $(srcdir)/PackedArray.h mkdir -p $$(@D) $(CC) -o $$@ -DPACKEDARRAY_SELF_TEST -std=c99 -pedantic $(CFLAGS) $$< $$(if $(postbuild),$(postbuild) $$@) $(bindir)/$(1)SelfBench: $(srcdir)/$(1).c $(srcdir)/PackedArray.h mkdir -p $$(@D) $(CC) -o $$@ -DPACKEDARRAY_SELF_BENCH -DNDEBUG -std=c99 -pedantic $(CFLAGS) $$< $$(if $(postbuild),$(postbuild) $$@) .PHONY: assembly-$(1) assembly: assembly-$(1) assembly-$(1): $(bindir)/$(1)SelfTest.s $(bindir)/$(1)SelfBench.s $(bindir)/$(1)SelfTest.s: $(srcdir)/$(1).c $(srcdir)/PackedArray.h @echo Generating $$(@F) assembly listing @mkdir -p $$(@D) @$(CC) -o $$@ -S -fverbose-asm -g -DPACKEDARRAY_SELF_TEST -std=c99 -pedantic $(CFLAGS) $$< $(bindir)/$(1)SelfBench.s: $(srcdir)/$(1).c $(srcdir)/PackedArray.h @echo Generating $$(@F) assembly listing @mkdir -p $$(@D) @$(CC) -o $$@ -S -fverbose-asm -g -DPACKEDARRAY_SELF_BENCH -DNDEBUG -std=c99 -pedantic $(CFLAGS) $$< .PHONY: test-$(1) test : test-$(1) test-$(1): build-$(1) $(bindir)/$(1)SelfTest .PHONY: preprocess-$(1) preprocess: preprocess-$(1) preprocess-$(1): $(srcdir)/$(1).c @echo Preprocessing $(1).c to $(1).pp.c $$(eval tmp := $$(shell mktemp -t $(1)XXX)) @sed -E\ -e 's/#include (<|").+(>|")/pp(&)/'\ $(srcdir)/$(1).c > $$(tmp) @$(CPP) $(CPPFLAGS) -DPACKEDARRAY_SELF=__FILE__ $(CFLAGS) -xc $$(tmp) | sed -E\ -e '/^# /d'\ -e 's/[ \t]*$$$$//'\ -e 's/pp\((.*)\)/\1/'\ | cat -s > $(srcdir)/$(1).pp.c @rm -f $$(tmp) .PHONY: cut-$(1) cut: cut-$(1) cut-$(1): $(srcdir)/$(1).c @echo Cutting down your anxiety to $(1).cut.c @sed -n '/- 8<.*/q;p' $(srcdir)/$(1).c > $(srcdir)/$(1).cut.c endef $(foreach p,PackedArray PackedArraySIMD, $(eval $(call _generate_rules,$(p)))) clean: rm -rf $(buildir) rm -rf $(bindir) rm -rf $(srcdir)/*.pp.c rm -rf $(srcdir)/*.cut.c ================================================ FILE: _ios-xcode/.gitignore ================================================ xcuserdata/ xcshareddata/ ================================================ FILE: _ios-xcode/PackedArray-Info.plist ================================================ CFBundleDevelopmentRegion en CFBundleDisplayName ${PRODUCT_NAME} CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier net.pempek.${PRODUCT_NAME:rfc1034identifier} CFBundleInfoDictionaryVersion 6.0 CFBundleName ${PRODUCT_NAME} CFBundlePackageType APPL CFBundleShortVersionString 1.0 CFBundleSignature ???? CFBundleVersion 1.0 LSRequiresIPhoneOS UIRequiredDeviceCapabilities armv7 UISupportedInterfaceOrientations UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UISupportedInterfaceOrientations~ipad UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight ================================================ FILE: _ios-xcode/PackedArray.xcodeproj/project.pbxproj ================================================ // !$*UTF8*$! { archiveVersion = 1; classes = { }; objectVersion = 46; objects = { /* Begin PBXBuildFile section */ 1A98F9EC17A406A700BF09FF /* PackedArray.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A98F9EB17A406A700BF09FF /* PackedArray.c */; }; 1A98F9F017A408F000BF09FF /* PackedArray.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A98F9EB17A406A700BF09FF /* PackedArray.c */; }; 1AC5A25517AD052200249A68 /* PackedArraySIMD.c in Sources */ = {isa = PBXBuildFile; fileRef = 1AC5A24017AD049E00249A68 /* PackedArraySIMD.c */; }; 1AC5A25617AD052400249A68 /* PackedArraySIMD.c in Sources */ = {isa = PBXBuildFile; fileRef = 1AC5A24017AD049E00249A68 /* PackedArraySIMD.c */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ 1A98F9C917A4018400BF09FF /* PackedArraySelfTest.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PackedArraySelfTest.app; sourceTree = BUILT_PRODUCTS_DIR; }; 1A98F9EB17A406A700BF09FF /* PackedArray.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = PackedArray.c; sourceTree = ""; }; 1A98F9F617A408F000BF09FF /* PackedArraySelfBench.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PackedArraySelfBench.app; sourceTree = BUILT_PRODUCTS_DIR; }; 1A98FA1A17A4267A00BF09FF /* PackedArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PackedArray.h; sourceTree = ""; }; 1AC5A24017AD049E00249A68 /* PackedArraySIMD.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PackedArraySIMD.c; sourceTree = ""; }; 1AC5A24917AD04A600249A68 /* PackedArraySIMDSelfTest.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PackedArraySIMDSelfTest.app; sourceTree = BUILT_PRODUCTS_DIR; }; 1AC5A25317AD04A800249A68 /* PackedArraySIMDSelfBench.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PackedArraySIMDSelfBench.app; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ 1A98F9C617A4018400BF09FF /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; 1A98F9F117A408F000BF09FF /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; 1AC5A24417AD04A600249A68 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; 1AC5A24E17AD04A800249A68 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ 1A98F9C017A4018400BF09FF = { isa = PBXGroup; children = ( 1A98F9ED17A406AE00BF09FF /* PackedArray */, 1A98F9CA17A4018400BF09FF /* Products */, ); sourceTree = ""; }; 1A98F9CA17A4018400BF09FF /* Products */ = { isa = PBXGroup; children = ( 1A98F9C917A4018400BF09FF /* PackedArraySelfTest.app */, 1A98F9F617A408F000BF09FF /* PackedArraySelfBench.app */, 1AC5A24917AD04A600249A68 /* PackedArraySIMDSelfTest.app */, 1AC5A25317AD04A800249A68 /* PackedArraySIMDSelfBench.app */, ); name = Products; sourceTree = ""; }; 1A98F9ED17A406AE00BF09FF /* PackedArray */ = { isa = PBXGroup; children = ( 1A98F9EB17A406A700BF09FF /* PackedArray.c */, 1A98FA1A17A4267A00BF09FF /* PackedArray.h */, 1AC5A24017AD049E00249A68 /* PackedArraySIMD.c */, ); name = PackedArray; path = ..; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ 1A98F9C817A4018400BF09FF /* PackedArraySelfTest */ = { isa = PBXNativeTarget; buildConfigurationList = 1A98F9E617A4018400BF09FF /* Build configuration list for PBXNativeTarget "PackedArraySelfTest" */; buildPhases = ( 1A98F9C517A4018400BF09FF /* Sources */, 1A98F9C617A4018400BF09FF /* Frameworks */, 1A98F9C717A4018400BF09FF /* Resources */, ); buildRules = ( ); dependencies = ( ); name = PackedArraySelfTest; productName = PackedArray; productReference = 1A98F9C917A4018400BF09FF /* PackedArraySelfTest.app */; productType = "com.apple.product-type.application"; }; 1A98F9EE17A408F000BF09FF /* PackedArraySelfBench */ = { isa = PBXNativeTarget; buildConfigurationList = 1A98F9F317A408F000BF09FF /* Build configuration list for PBXNativeTarget "PackedArraySelfBench" */; buildPhases = ( 1A98F9EF17A408F000BF09FF /* Sources */, 1A98F9F117A408F000BF09FF /* Frameworks */, 1A98F9F217A408F000BF09FF /* Resources */, ); buildRules = ( ); dependencies = ( ); name = PackedArraySelfBench; productName = PackedArray; productReference = 1A98F9F617A408F000BF09FF /* PackedArraySelfBench.app */; productType = "com.apple.product-type.application"; }; 1AC5A24117AD04A600249A68 /* PackedArraySIMDSelfTest */ = { isa = PBXNativeTarget; buildConfigurationList = 1AC5A24617AD04A600249A68 /* Build configuration list for PBXNativeTarget "PackedArraySIMDSelfTest" */; buildPhases = ( 1AC5A24217AD04A600249A68 /* Sources */, 1AC5A24417AD04A600249A68 /* Frameworks */, 1AC5A24517AD04A600249A68 /* Resources */, ); buildRules = ( ); dependencies = ( ); name = PackedArraySIMDSelfTest; productName = PackedArray; productReference = 1AC5A24917AD04A600249A68 /* PackedArraySIMDSelfTest.app */; productType = "com.apple.product-type.application"; }; 1AC5A24B17AD04A800249A68 /* PackedArraySIMDSelfBench */ = { isa = PBXNativeTarget; buildConfigurationList = 1AC5A25017AD04A800249A68 /* Build configuration list for PBXNativeTarget "PackedArraySIMDSelfBench" */; buildPhases = ( 1AC5A24C17AD04A800249A68 /* Sources */, 1AC5A24E17AD04A800249A68 /* Frameworks */, 1AC5A24F17AD04A800249A68 /* Resources */, ); buildRules = ( ); dependencies = ( ); name = PackedArraySIMDSelfBench; productName = PackedArray; productReference = 1AC5A25317AD04A800249A68 /* PackedArraySIMDSelfBench.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ 1A98F9C117A4018400BF09FF /* Project object */ = { isa = PBXProject; attributes = { LastUpgradeCheck = 0460; ORGANIZATIONNAME = "Gregory Pakosz"; }; buildConfigurationList = 1A98F9C417A4018400BF09FF /* Build configuration list for PBXProject "PackedArray" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( en, ); mainGroup = 1A98F9C017A4018400BF09FF; productRefGroup = 1A98F9CA17A4018400BF09FF /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( 1A98F9C817A4018400BF09FF /* PackedArraySelfTest */, 1A98F9EE17A408F000BF09FF /* PackedArraySelfBench */, 1AC5A24117AD04A600249A68 /* PackedArraySIMDSelfTest */, 1AC5A24B17AD04A800249A68 /* PackedArraySIMDSelfBench */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ 1A98F9C717A4018400BF09FF /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; 1A98F9F217A408F000BF09FF /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; 1AC5A24517AD04A600249A68 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; 1AC5A24F17AD04A800249A68 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ 1A98F9C517A4018400BF09FF /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 1A98F9EC17A406A700BF09FF /* PackedArray.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; 1A98F9EF17A408F000BF09FF /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 1A98F9F017A408F000BF09FF /* PackedArray.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; 1AC5A24217AD04A600249A68 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 1AC5A25517AD052200249A68 /* PackedArraySIMD.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; 1AC5A24C17AD04A800249A68 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 1AC5A25617AD052400249A68 /* PackedArraySIMD.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin XCBuildConfiguration section */ 1A98F9E417A4018400BF09FF /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_VARIABLE = YES; INFOPLIST_FILE = "PackedArray-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 7.0; ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; }; 1A98F9E517A4018400BF09FF /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = NDEBUG; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_VARIABLE = YES; INFOPLIST_FILE = "PackedArray-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 7.0; OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; }; name = Release; }; 1A98F9E717A4018400BF09FF /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { GCC_PREPROCESSOR_DEFINITIONS = PACKEDARRAY_SELF_TEST; WRAPPER_EXTENSION = app; }; name = Debug; }; 1A98F9E817A4018400BF09FF /* Release */ = { isa = XCBuildConfiguration; buildSettings = { GCC_PREPROCESSOR_DEFINITIONS = PACKEDARRAY_SELF_TEST; WRAPPER_EXTENSION = app; }; name = Release; }; 1A98F9F417A408F000BF09FF /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { GCC_PREPROCESSOR_DEFINITIONS = ( PACKEDARRAY_SELF_BENCH, NDEBUG, "$(inherited)", ); WRAPPER_EXTENSION = app; }; name = Debug; }; 1A98F9F517A408F000BF09FF /* Release */ = { isa = XCBuildConfiguration; buildSettings = { GCC_PREPROCESSOR_DEFINITIONS = ( PACKEDARRAY_SELF_BENCH, "$(inherited)", ); WRAPPER_EXTENSION = app; }; name = Release; }; 1AC5A24717AD04A600249A68 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; GCC_PREPROCESSOR_DEFINITIONS = PACKEDARRAY_SELF_TEST; WRAPPER_EXTENSION = app; }; name = Debug; }; 1AC5A24817AD04A600249A68 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; GCC_PREPROCESSOR_DEFINITIONS = PACKEDARRAY_SELF_TEST; WRAPPER_EXTENSION = app; }; name = Release; }; 1AC5A25117AD04A800249A68 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { GCC_PREPROCESSOR_DEFINITIONS = ( PACKEDARRAY_SELF_BENCH, NDEBUG, "$(inherited)", ); WRAPPER_EXTENSION = app; }; name = Debug; }; 1AC5A25217AD04A800249A68 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { GCC_PREPROCESSOR_DEFINITIONS = ( PACKEDARRAY_SELF_BENCH, "$(inherited)", ); WRAPPER_EXTENSION = app; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ 1A98F9C417A4018400BF09FF /* Build configuration list for PBXProject "PackedArray" */ = { isa = XCConfigurationList; buildConfigurations = ( 1A98F9E417A4018400BF09FF /* Debug */, 1A98F9E517A4018400BF09FF /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 1A98F9E617A4018400BF09FF /* Build configuration list for PBXNativeTarget "PackedArraySelfTest" */ = { isa = XCConfigurationList; buildConfigurations = ( 1A98F9E717A4018400BF09FF /* Debug */, 1A98F9E817A4018400BF09FF /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 1A98F9F317A408F000BF09FF /* Build configuration list for PBXNativeTarget "PackedArraySelfBench" */ = { isa = XCConfigurationList; buildConfigurations = ( 1A98F9F417A408F000BF09FF /* Debug */, 1A98F9F517A408F000BF09FF /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 1AC5A24617AD04A600249A68 /* Build configuration list for PBXNativeTarget "PackedArraySIMDSelfTest" */ = { isa = XCConfigurationList; buildConfigurations = ( 1AC5A24717AD04A600249A68 /* Debug */, 1AC5A24817AD04A600249A68 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 1AC5A25017AD04A800249A68 /* Build configuration list for PBXNativeTarget "PackedArraySIMDSelfBench" */ = { isa = XCConfigurationList; buildConfigurations = ( 1AC5A25117AD04A800249A68 /* Debug */, 1AC5A25217AD04A800249A68 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; rootObject = 1A98F9C117A4018400BF09FF /* Project object */; } ================================================ FILE: _ios-xcode/PackedArray.xcodeproj/project.xcworkspace/contents.xcworkspacedata ================================================ ================================================ FILE: _mac-xcode/.gitignore ================================================ xcuserdata/ xcshareddata/ ================================================ FILE: _mac-xcode/PackedArray.xcodeproj/project.pbxproj ================================================ // !$*UTF8*$! { archiveVersion = 1; classes = { }; objectVersion = 46; objects = { /* Begin PBXBuildFile section */ 1A98FA1017A424D700BF09FF /* PackedArray.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A98FA0E17A424D700BF09FF /* PackedArray.c */; }; 1A98FA1317A4262700BF09FF /* PackedArray.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A98FA0E17A424D700BF09FF /* PackedArray.c */; }; 1AEF60E217AD035900CA6B64 /* PackedArraySIMD.c in Sources */ = {isa = PBXBuildFile; fileRef = 1AEF60CF17AD02B000CA6B64 /* PackedArraySIMD.c */; }; 1AEF60E317AD035A00CA6B64 /* PackedArraySIMD.c in Sources */ = {isa = PBXBuildFile; fileRef = 1AEF60CF17AD02B000CA6B64 /* PackedArraySIMD.c */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ 1A98F9FF17A4249200BF09FF /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = /usr/share/man/man1/; dstSubfolderSpec = 0; files = ( ); runOnlyForDeploymentPostprocessing = 1; }; 1A98FA1517A4262700BF09FF /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = /usr/share/man/man1/; dstSubfolderSpec = 0; files = ( ); runOnlyForDeploymentPostprocessing = 1; }; 1AEF60D417AD02BA00CA6B64 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = /usr/share/man/man1/; dstSubfolderSpec = 0; files = ( ); runOnlyForDeploymentPostprocessing = 1; }; 1AEF60DD17AD02BD00CA6B64 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = /usr/share/man/man1/; dstSubfolderSpec = 0; files = ( ); runOnlyForDeploymentPostprocessing = 1; }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ 1A98FA0117A4249200BF09FF /* PackedArraySelfTest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = PackedArraySelfTest; sourceTree = BUILT_PRODUCTS_DIR; }; 1A98FA0E17A424D700BF09FF /* PackedArray.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = PackedArray.c; sourceTree = ""; }; 1A98FA0F17A424D700BF09FF /* PackedArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PackedArray.h; sourceTree = ""; }; 1A98FA1917A4262700BF09FF /* PackedArraySelfBench */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = PackedArraySelfBench; sourceTree = BUILT_PRODUCTS_DIR; }; 1AEF60CF17AD02B000CA6B64 /* PackedArraySIMD.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PackedArraySIMD.c; sourceTree = ""; }; 1AEF60D817AD02BA00CA6B64 /* PackedArraySIMDSelfTest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = PackedArraySIMDSelfTest; sourceTree = BUILT_PRODUCTS_DIR; }; 1AEF60E117AD02BD00CA6B64 /* PackedArraySIMDSelfBench */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = PackedArraySIMDSelfBench; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ 1A98F9FE17A4249200BF09FF /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; 1A98FA1417A4262700BF09FF /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; 1AEF60D317AD02BA00CA6B64 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; 1AEF60DC17AD02BD00CA6B64 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ 1A98F9F817A4249200BF09FF = { isa = PBXGroup; children = ( 1A98FA0D17A424BE00BF09FF /* PackedArray */, 1A98FA0217A4249200BF09FF /* Products */, ); sourceTree = ""; }; 1A98FA0217A4249200BF09FF /* Products */ = { isa = PBXGroup; children = ( 1A98FA0117A4249200BF09FF /* PackedArraySelfTest */, 1A98FA1917A4262700BF09FF /* PackedArraySelfBench */, 1AEF60D817AD02BA00CA6B64 /* PackedArraySIMDSelfTest */, 1AEF60E117AD02BD00CA6B64 /* PackedArraySIMDSelfBench */, ); name = Products; sourceTree = ""; }; 1A98FA0D17A424BE00BF09FF /* PackedArray */ = { isa = PBXGroup; children = ( 1A98FA0E17A424D700BF09FF /* PackedArray.c */, 1A98FA0F17A424D700BF09FF /* PackedArray.h */, 1AEF60CF17AD02B000CA6B64 /* PackedArraySIMD.c */, ); name = PackedArray; path = ..; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ 1A98FA0017A4249200BF09FF /* PackedArraySelfTest */ = { isa = PBXNativeTarget; buildConfigurationList = 1A98FA0A17A4249200BF09FF /* Build configuration list for PBXNativeTarget "PackedArraySelfTest" */; buildPhases = ( 1A98F9FD17A4249200BF09FF /* Sources */, 1A98F9FE17A4249200BF09FF /* Frameworks */, 1A98F9FF17A4249200BF09FF /* CopyFiles */, ); buildRules = ( ); dependencies = ( ); name = PackedArraySelfTest; productName = PackedArray; productReference = 1A98FA0117A4249200BF09FF /* PackedArraySelfTest */; productType = "com.apple.product-type.tool"; }; 1A98FA1117A4262700BF09FF /* PackedArraySelfBench */ = { isa = PBXNativeTarget; buildConfigurationList = 1A98FA1617A4262700BF09FF /* Build configuration list for PBXNativeTarget "PackedArraySelfBench" */; buildPhases = ( 1A98FA1217A4262700BF09FF /* Sources */, 1A98FA1417A4262700BF09FF /* Frameworks */, 1A98FA1517A4262700BF09FF /* CopyFiles */, ); buildRules = ( ); dependencies = ( ); name = PackedArraySelfBench; productName = PackedArray; productReference = 1A98FA1917A4262700BF09FF /* PackedArraySelfBench */; productType = "com.apple.product-type.tool"; }; 1AEF60D017AD02BA00CA6B64 /* PackedArraySIMDSelfTest */ = { isa = PBXNativeTarget; buildConfigurationList = 1AEF60D517AD02BA00CA6B64 /* Build configuration list for PBXNativeTarget "PackedArraySIMDSelfTest" */; buildPhases = ( 1AEF60D117AD02BA00CA6B64 /* Sources */, 1AEF60D317AD02BA00CA6B64 /* Frameworks */, 1AEF60D417AD02BA00CA6B64 /* CopyFiles */, ); buildRules = ( ); dependencies = ( ); name = PackedArraySIMDSelfTest; productName = PackedArray; productReference = 1AEF60D817AD02BA00CA6B64 /* PackedArraySIMDSelfTest */; productType = "com.apple.product-type.tool"; }; 1AEF60D917AD02BD00CA6B64 /* PackedArraySIMDSelfBench */ = { isa = PBXNativeTarget; buildConfigurationList = 1AEF60DE17AD02BD00CA6B64 /* Build configuration list for PBXNativeTarget "PackedArraySIMDSelfBench" */; buildPhases = ( 1AEF60DA17AD02BD00CA6B64 /* Sources */, 1AEF60DC17AD02BD00CA6B64 /* Frameworks */, 1AEF60DD17AD02BD00CA6B64 /* CopyFiles */, ); buildRules = ( ); dependencies = ( ); name = PackedArraySIMDSelfBench; productName = PackedArray; productReference = 1AEF60E117AD02BD00CA6B64 /* PackedArraySIMDSelfBench */; productType = "com.apple.product-type.tool"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ 1A98F9F917A4249200BF09FF /* Project object */ = { isa = PBXProject; attributes = { LastUpgradeCheck = 0460; ORGANIZATIONNAME = "Gregory Pakosz"; }; buildConfigurationList = 1A98F9FC17A4249200BF09FF /* Build configuration list for PBXProject "PackedArray" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( en, ); mainGroup = 1A98F9F817A4249200BF09FF; productRefGroup = 1A98FA0217A4249200BF09FF /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( 1A98FA0017A4249200BF09FF /* PackedArraySelfTest */, 1A98FA1117A4262700BF09FF /* PackedArraySelfBench */, 1AEF60D017AD02BA00CA6B64 /* PackedArraySIMDSelfTest */, 1AEF60D917AD02BD00CA6B64 /* PackedArraySIMDSelfBench */, ); }; /* End PBXProject section */ /* Begin PBXSourcesBuildPhase section */ 1A98F9FD17A4249200BF09FF /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 1A98FA1017A424D700BF09FF /* PackedArray.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; 1A98FA1217A4262700BF09FF /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 1A98FA1317A4262700BF09FF /* PackedArray.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; 1AEF60D117AD02BA00CA6B64 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 1AEF60E217AD035900CA6B64 /* PackedArraySIMD.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; 1AEF60DA17AD02BD00CA6B64 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 1AEF60E317AD035A00CA6B64 /* PackedArraySIMD.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin XCBuildConfiguration section */ 1A98FA0817A4249200BF09FF /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_ENABLE_OBJC_EXCEPTIONS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.8; ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; }; name = Debug; }; 1A98FA0917A4249200BF09FF /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_ENABLE_OBJC_EXCEPTIONS = YES; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = NDEBUG; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.8; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; }; name = Release; }; 1A98FA0B17A4249200BF09FF /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { GCC_PREPROCESSOR_DEFINITIONS = ( PACKEDARRAY_SELF_TEST, "$(inherited)", ); }; name = Debug; }; 1A98FA0C17A4249200BF09FF /* Release */ = { isa = XCBuildConfiguration; buildSettings = { GCC_PREPROCESSOR_DEFINITIONS = ( PACKEDARRAY_SELF_TEST, "$(inherited)", ); }; name = Release; }; 1A98FA1717A4262700BF09FF /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { GCC_PREPROCESSOR_DEFINITIONS = ( PACKEDARRAY_SELF_BENCH, NDEBUG, "$(inherited)", ); }; name = Debug; }; 1A98FA1817A4262700BF09FF /* Release */ = { isa = XCBuildConfiguration; buildSettings = { GCC_PREPROCESSOR_DEFINITIONS = ( PACKEDARRAY_SELF_BENCH, NDEBUG, "$(inherited)", ); }; name = Release; }; 1AEF60D617AD02BA00CA6B64 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { GCC_PREPROCESSOR_DEFINITIONS = ( PACKEDARRAY_SELF_TEST, "$(inherited)", ); }; name = Debug; }; 1AEF60D717AD02BA00CA6B64 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { GCC_PREPROCESSOR_DEFINITIONS = ( PACKEDARRAY_SELF_TEST, "$(inherited)", ); }; name = Release; }; 1AEF60DF17AD02BD00CA6B64 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { GCC_PREPROCESSOR_DEFINITIONS = ( PACKEDARRAY_SELF_BENCH, NDEBUG, "$(inherited)", ); }; name = Debug; }; 1AEF60E017AD02BD00CA6B64 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { GCC_PREPROCESSOR_DEFINITIONS = ( PACKEDARRAY_SELF_BENCH, NDEBUG, "$(inherited)", ); }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ 1A98F9FC17A4249200BF09FF /* Build configuration list for PBXProject "PackedArray" */ = { isa = XCConfigurationList; buildConfigurations = ( 1A98FA0817A4249200BF09FF /* Debug */, 1A98FA0917A4249200BF09FF /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 1A98FA0A17A4249200BF09FF /* Build configuration list for PBXNativeTarget "PackedArraySelfTest" */ = { isa = XCConfigurationList; buildConfigurations = ( 1A98FA0B17A4249200BF09FF /* Debug */, 1A98FA0C17A4249200BF09FF /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 1A98FA1617A4262700BF09FF /* Build configuration list for PBXNativeTarget "PackedArraySelfBench" */ = { isa = XCConfigurationList; buildConfigurations = ( 1A98FA1717A4262700BF09FF /* Debug */, 1A98FA1817A4262700BF09FF /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 1AEF60D517AD02BA00CA6B64 /* Build configuration list for PBXNativeTarget "PackedArraySIMDSelfTest" */ = { isa = XCConfigurationList; buildConfigurations = ( 1AEF60D617AD02BA00CA6B64 /* Debug */, 1AEF60D717AD02BA00CA6B64 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 1AEF60DE17AD02BD00CA6B64 /* Build configuration list for PBXNativeTarget "PackedArraySIMDSelfBench" */ = { isa = XCConfigurationList; buildConfigurations = ( 1AEF60DF17AD02BD00CA6B64 /* Debug */, 1AEF60E017AD02BD00CA6B64 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; rootObject = 1A98F9F917A4249200BF09FF /* Project object */; } ================================================ FILE: _mac-xcode/PackedArray.xcodeproj/project.xcworkspace/contents.xcworkspacedata ================================================ ================================================ FILE: _win-vs11/.gitignore ================================================ /build /ipch *.suo *.sdf *.opensdf *.user *.sln.docstates ================================================ FILE: _win-vs11/Common.props ================================================  ..\bin\Windows$(PLATFORM_SUFFIX)-$(ARCH)$(CONF_SUFFIX) ..\lib\Windows$(PLATFORM_SUFFIX)-$(ARCH)-vs11$(CONF_SUFFIX) build\$(ProjectName)-win$(PLATFORM_SUFFIX)-$(ARCH)-vs11$(CONF_SUFFIX) $(BUILD_DIR)\ $(BIN_DIR)\ false _CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true /we4013 /wd4820 /we4289 /wd4342 /wd4347 /wd4514 /we4545 /we4546 /we4547 /we4548 /we4549 /we4619 /we4623 /we4625 /we4626 /wd4710 /we4836 /we4905 /we4906 /we4928 /we4946 /wd4986 /wd4711 /wd4350 NotUsing true EnableAllWarnings true Console /time %(AdditionalOptions) $(BIN_DIR) $(LIB_DIR) $(BUILD_DIR) ================================================ FILE: _win-vs11/Debug.props ================================================  -Debug Disabled Level3 ProgramDatabase MultiThreadedDebug true OnlyExplicitInline $(CONF_SUFFIX) ================================================ FILE: _win-vs11/PackedArray.sln ================================================  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Express 2012 for Windows Desktop Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PackedArraySelfTest", "PackedArraySelfTest.vcxproj", "{7BC8C873-A2C7-43A1-BD8A-2F1731F3CB81}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PackedArraySelfBench", "PackedArraySelfBench.vcxproj", "{686B991E-01AD-4433-897E-DFD5E751DAF5}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PackedArraySIMDSelfBench", "PackedArraySIMDSelfBench.vcxproj", "{6082A77F-4ADC-4E49-89BA-BFE1C9E69C9D}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PackedArraySIMDSelfTest", "PackedArraySIMDSelfTest.vcxproj", "{2F15B46B-D5F3-46B4-A5A2-ECD62B9FD848}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Debug|x64 = Debug|x64 Release|Win32 = Release|Win32 Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {7BC8C873-A2C7-43A1-BD8A-2F1731F3CB81}.Debug|Win32.ActiveCfg = Debug|Win32 {7BC8C873-A2C7-43A1-BD8A-2F1731F3CB81}.Debug|Win32.Build.0 = Debug|Win32 {7BC8C873-A2C7-43A1-BD8A-2F1731F3CB81}.Debug|x64.ActiveCfg = Debug|x64 {7BC8C873-A2C7-43A1-BD8A-2F1731F3CB81}.Debug|x64.Build.0 = Debug|x64 {7BC8C873-A2C7-43A1-BD8A-2F1731F3CB81}.Release|Win32.ActiveCfg = Release|Win32 {7BC8C873-A2C7-43A1-BD8A-2F1731F3CB81}.Release|Win32.Build.0 = Release|Win32 {7BC8C873-A2C7-43A1-BD8A-2F1731F3CB81}.Release|x64.ActiveCfg = Release|x64 {7BC8C873-A2C7-43A1-BD8A-2F1731F3CB81}.Release|x64.Build.0 = Release|x64 {686B991E-01AD-4433-897E-DFD5E751DAF5}.Debug|Win32.ActiveCfg = Debug|Win32 {686B991E-01AD-4433-897E-DFD5E751DAF5}.Debug|Win32.Build.0 = Debug|Win32 {686B991E-01AD-4433-897E-DFD5E751DAF5}.Debug|x64.ActiveCfg = Debug|x64 {686B991E-01AD-4433-897E-DFD5E751DAF5}.Debug|x64.Build.0 = Debug|x64 {686B991E-01AD-4433-897E-DFD5E751DAF5}.Release|Win32.ActiveCfg = Release|Win32 {686B991E-01AD-4433-897E-DFD5E751DAF5}.Release|Win32.Build.0 = Release|Win32 {686B991E-01AD-4433-897E-DFD5E751DAF5}.Release|x64.ActiveCfg = Release|x64 {686B991E-01AD-4433-897E-DFD5E751DAF5}.Release|x64.Build.0 = Release|x64 {6082A77F-4ADC-4E49-89BA-BFE1C9E69C9D}.Debug|Win32.ActiveCfg = Debug|Win32 {6082A77F-4ADC-4E49-89BA-BFE1C9E69C9D}.Debug|Win32.Build.0 = Debug|Win32 {6082A77F-4ADC-4E49-89BA-BFE1C9E69C9D}.Debug|x64.ActiveCfg = Debug|x64 {6082A77F-4ADC-4E49-89BA-BFE1C9E69C9D}.Debug|x64.Build.0 = Debug|x64 {6082A77F-4ADC-4E49-89BA-BFE1C9E69C9D}.Release|Win32.ActiveCfg = Release|Win32 {6082A77F-4ADC-4E49-89BA-BFE1C9E69C9D}.Release|Win32.Build.0 = Release|Win32 {6082A77F-4ADC-4E49-89BA-BFE1C9E69C9D}.Release|x64.ActiveCfg = Release|x64 {6082A77F-4ADC-4E49-89BA-BFE1C9E69C9D}.Release|x64.Build.0 = Release|x64 {2F15B46B-D5F3-46B4-A5A2-ECD62B9FD848}.Debug|Win32.ActiveCfg = Debug|Win32 {2F15B46B-D5F3-46B4-A5A2-ECD62B9FD848}.Debug|Win32.Build.0 = Debug|Win32 {2F15B46B-D5F3-46B4-A5A2-ECD62B9FD848}.Debug|x64.ActiveCfg = Debug|x64 {2F15B46B-D5F3-46B4-A5A2-ECD62B9FD848}.Debug|x64.Build.0 = Debug|x64 {2F15B46B-D5F3-46B4-A5A2-ECD62B9FD848}.Release|Win32.ActiveCfg = Release|Win32 {2F15B46B-D5F3-46B4-A5A2-ECD62B9FD848}.Release|Win32.Build.0 = Release|Win32 {2F15B46B-D5F3-46B4-A5A2-ECD62B9FD848}.Release|x64.ActiveCfg = Release|x64 {2F15B46B-D5F3-46B4-A5A2-ECD62B9FD848}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: _win-vs11/PackedArraySIMDSelfBench.vcxproj ================================================  Debug Win32 Debug x64 Release Win32 Release x64 {6082A77F-4ADC-4E49-89BA-BFE1C9E69C9D} Win32Proj PackedArraySIMD Application true v110 Application true v110 Application false v110 true Application false v110 true PACKEDARRAY_SELF_BENCH;NDEBUG;%(PreprocessorDefinitions) PACKEDARRAY_SELF_BENCH;NDEBUG;%(PreprocessorDefinitions) PACKEDARRAY_SELF_BENCH;NDEBUG%(PreprocessorDefinitions) PACKEDARRAY_SELF_BENCH;NDEBUG%(PreprocessorDefinitions) ================================================ FILE: _win-vs11/PackedArraySIMDSelfTest.vcxproj ================================================  Debug Win32 Debug x64 Release Win32 Release x64 {2F15B46B-D5F3-46B4-A5A2-ECD62B9FD848} Win32Proj PackedArraySIMD Application true v110 Application true v110 Application false v110 true Application false v110 true PACKEDARRAY_SELF_TEST;%(PreprocessorDefinitions) PACKEDARRAY_SELF_TEST;%(PreprocessorDefinitions) PACKEDARRAY_SELF_TEST;%(PreprocessorDefinitions) PACKEDARRAY_SELF_TEST;%(PreprocessorDefinitions) ================================================ FILE: _win-vs11/PackedArraySelfBench.vcxproj ================================================  Debug Win32 Debug x64 Release Win32 Release x64 {686B991E-01AD-4433-897E-DFD5E751DAF5} Win32Proj PackedArray Application true v110 Application true v110 Application false v110 true Application false v110 true PACKEDARRAY_SELF_BENCH;NDEBUG;%(PreprocessorDefinitions) PACKEDARRAY_SELF_BENCH;NDEBUG;%(PreprocessorDefinitions) PACKEDARRAY_SELF_BENCH;NDEBUG%(PreprocessorDefinitions) PACKEDARRAY_SELF_BENCH;NDEBUG%(PreprocessorDefinitions) ================================================ FILE: _win-vs11/PackedArraySelfTest.vcxproj ================================================  Debug Win32 Debug x64 Release Win32 Release x64 {7BC8C873-A2C7-43A1-BD8A-2F1731F3CB81} Win32Proj PackedArray Application true v110 Application true v110 Application false v110 true Application false v110 true PACKEDARRAY_SELF_TEST;%(PreprocessorDefinitions) PACKEDARRAY_SELF_TEST;%(PreprocessorDefinitions) PACKEDARRAY_SELF_TEST;%(PreprocessorDefinitions) PACKEDARRAY_SELF_TEST;%(PreprocessorDefinitions) ================================================ FILE: _win-vs11/Release.props ================================================  false MaxSpeed AnySuitable true Speed true true true NDEBUG;%(PreprocessorDefinitions) true Level3 ProgramDatabase MultiThreaded false /d2Zi+ %(AdditionalOptions) UseLinkTimeCodeGeneration true true $(CONF_SUFFIX) ================================================ FILE: _win-vs11/x64.props ================================================  x64 MachineX64 $(ARCH) ================================================ FILE: _win-vs11/x86.props ================================================  x86 MachineX86 StreamingSIMDExtensions2 $(ARCH) ================================================ FILE: benchmark/PackedArraySIMDSelfBench-unrolled-galaxy-note-cortex-a9-1.4GHz.txt ================================================ -- PackedArray self bench ------------------------------------------------------ memcpy: bits size (B) time (µs) speed (B/µs) 32 4 0.260 15.392 32 8 0.225 35.583 32 16 0.223 71.774 32 32 0.363 88.127 32 64 0.424 150.976 32 128 0.509 251.462 32 256 0.767 333.771 32 512 1.049 488.175 32 1024 1.824 561.434 32 2048 3.328 615.413 32 4096 6.297 650.482 32 8192 12.142 674.686 32 16384 23.797 688.489 32 32768 10.177 3219.842 32 65536 27.135 2415.171 32 131072 55.138 2377.168 32 262144 132.314 1981.227 32 524288 351.372 1492.117 32 1048576 1400.464 748.735 avg (B/µs) min (B/µs) max (B/µs) 887.370 15.392 3219.842 loopcpy: bits size (B) time (µs) speed (B/µs) 32 4 0.037 108.240 32 8 0.038 209.715 32 16 0.038 422.068 32 32 0.063 506.482 32 64 0.071 900.790 32 128 0.086 1491.308 32 256 0.116 2209.345 32 512 0.176 2909.869 32 1024 0.306 3344.990 32 2048 0.546 3751.063 32 4096 1.026 3991.605 32 8192 2.497 3280.792 32 16384 4.508 3634.413 32 32768 8.462 3872.392 32 65536 27.297 2400.848 32 131072 55.625 2356.342 32 262144 185.746 1411.304 32 524288 630.057 832.128 32 1048576 1377.527 761.202 avg (B/µs) min (B/µs) max (B/µs) 2020.784 108.240 3991.605 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 1 4 0.038 105.517 1 4 0.062 64.528 1 8 0.044 182.361 1 8 0.039 204.600 1 16 0.052 307.839 1 16 0.039 409.200 1 32 0.054 591.268 1 32 0.051 627.186 1 64 0.060 1065.220 1 64 0.065 986.895 1 128 0.074 1731.842 1 128 0.095 1345.541 1 256 0.106 2412.903 1 256 0.155 1651.910 1 512 0.166 3081.038 1 512 0.277 1848.093 1 1024 0.303 3379.203 1 1024 0.517 1980.160 1 2048 0.579 3537.864 1 2048 1.001 2046.197 1 4096 1.187 3450.466 1 4096 1.969 2080.139 1 8192 2.261 3623.298 1 8192 3.902 2099.459 1 16384 4.463 3670.912 1 16384 7.797 2101.320 1 32768 12.762 2567.609 1 32768 15.681 2089.659 1 65536 31.981 2049.217 1 65536 31.053 2110.468 1 131072 71.963 1821.379 1 131072 62.428 2099.571 1 262144 151.636 1728.770 1 262144 124.880 2099.166 1 524288 309.744 1692.649 1 524288 252.277 2078.224 1 1048576 773.824 1355.058 1 1048576 533.997 1963.636 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2018.653 105.517 3670.912 1572.945 64.528 2110.468 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 2 4 0.039 102.928 2 4 0.067 59.705 2 8 0.049 162.886 2 8 0.043 185.384 2 16 0.054 296.942 2 16 0.043 372.827 2 32 0.057 561.580 2 32 0.050 642.190 2 64 0.063 1016.801 2 64 0.065 983.280 2 128 0.076 1682.981 2 128 0.095 1345.541 2 256 0.103 2485.513 2 256 0.155 1651.910 2 512 0.176 2909.869 2 512 0.279 1833.889 2 1024 0.316 3239.040 2 1024 0.521 1965.660 2 2048 0.637 3215.999 2 2048 1.007 2033.602 2 4096 1.179 3474.190 2 4096 1.987 2061.419 2 8192 2.334 3510.036 2 8192 3.953 2072.361 2 16384 4.602 3560.041 2 16384 7.857 2085.315 2 32768 13.053 2510.392 2 32768 15.936 2056.238 2 65536 34.460 1901.795 2 65536 31.283 2094.946 2 131072 73.934 1772.823 2 131072 62.702 2090.398 2 262144 149.351 1755.222 2 262144 133.610 1962.009 2 524288 432.895 1211.121 2 524288 275.559 1902.635 2 1048576 888.796 1179.771 2 1048576 556.340 1884.776 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1923.681 102.928 3560.041 1541.268 59.705 2094.946 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 3 4 0.042 95.325 3 4 0.070 57.260 3 8 0.054 147.817 3 8 0.047 170.327 3 16 0.056 285.570 3 16 0.039 409.200 3 32 0.058 550.073 3 32 0.051 627.186 3 64 0.064 1001.625 3 64 0.066 972.592 3 128 0.078 1636.802 3 128 0.096 1335.500 3 256 0.113 2265.278 3 256 0.165 1551.650 3 512 0.177 2890.288 3 512 0.296 1730.446 3 1024 0.322 3181.457 3 1024 0.556 1841.753 3 2048 0.614 3335.897 3 2048 1.076 1903.376 3 4096 1.248 3281.732 3 4096 2.116 1935.760 3 8192 2.378 3444.931 3 8192 4.213 1944.414 3 16384 4.734 3460.892 3 16384 8.385 1953.979 3 32768 13.400 2445.402 3 32768 16.724 1959.327 3 65536 34.637 1892.082 3 65536 33.432 1960.277 3 131072 77.480 1691.686 3 131072 67.093 1953.590 3 262144 173.980 1506.748 3 262144 136.542 1919.877 3 524288 337.184 1554.902 3 524288 287.618 1822.861 3 1048576 817.251 1283.052 3 1048576 647.711 1618.895 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1892.187 95.325 3460.892 1456.225 57.260 1960.277 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 4 4 0.083 48.210 4 4 0.034 117.323 4 8 0.051 156.796 4 8 0.044 182.361 4 16 0.057 279.620 4 16 0.040 399.458 4 32 0.058 552.336 4 32 0.049 651.542 4 64 0.065 983.280 4 64 0.063 1016.801 4 128 0.067 1910.573 4 128 0.094 1362.617 4 256 0.105 2440.322 4 256 0.155 1651.910 4 512 0.180 2844.349 4 512 0.281 1821.445 4 1024 0.330 3103.300 4 1024 0.526 1946.066 4 2048 0.630 3250.070 4 2048 1.071 1912.274 4 4096 1.245 3289.902 4 4096 2.081 1968.137 4 8192 2.497 3280.792 4 8192 4.149 1974.471 4 16384 4.888 3352.006 4 16384 8.034 2039.335 4 32768 14.355 2282.698 4 32768 16.054 2041.122 4 65536 37.628 1741.685 4 65536 45.911 1427.463 4 131072 91.421 1433.720 4 131072 70.325 1863.800 4 262144 176.782 1482.865 4 262144 151.455 1730.838 4 524288 377.989 1387.046 4 524288 287.518 1823.496 4 1048576 864.127 1213.451 4 1048576 601.741 1742.570 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1843.843 48.210 3352.006 1456.475 117.323 2041.122 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 5 4 0.082 48.771 5 4 0.040 99.864 5 8 0.057 140.395 5 8 0.053 150.468 5 16 0.055 291.778 5 16 0.038 422.068 5 32 0.058 552.336 5 32 0.051 630.130 5 64 0.085 754.032 5 64 0.066 969.081 5 128 0.083 1542.733 5 128 0.103 1242.757 5 256 0.116 2204.809 5 256 0.174 1470.879 5 512 0.185 2767.376 5 512 0.315 1625.650 5 1024 0.339 3020.371 5 1024 0.593 1726.967 5 2048 0.648 3160.388 5 2048 1.191 1719.707 5 4096 1.278 3204.602 5 4096 2.262 1810.694 5 8192 2.593 3159.516 5 8192 4.507 1817.591 5 16384 5.010 3270.176 5 16384 8.975 1825.558 5 32768 14.040 2333.904 5 32768 17.914 1829.202 5 65536 33.340 1965.688 5 65536 36.246 1808.086 5 131072 73.165 1791.459 5 131072 71.988 1820.751 5 262144 165.369 1585.208 5 262144 154.613 1695.485 5 524288 323.975 1618.297 5 524288 333.541 1571.885 5 1048576 975.722 1074.667 5 1048576 914.320 1146.837 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1815.079 48.771 3270.176 1335.982 99.864 1829.202 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 6 4 0.108 37.036 6 4 0.040 100.462 6 8 0.136 58.867 6 8 0.055 145.257 6 16 0.057 280.790 6 16 0.040 399.458 6 32 0.059 543.392 6 32 0.051 627.186 6 64 0.066 969.081 6 64 0.066 969.081 6 128 0.080 1597.830 6 128 0.106 1206.451 6 256 0.112 2284.557 6 256 0.174 1470.879 6 512 0.191 2681.003 6 512 0.316 1619.520 6 1024 0.349 2933.721 6 1024 0.596 1717.987 6 2048 0.665 3079.934 6 2048 1.155 1772.948 6 4096 3.067 1335.500 6 4096 2.279 1797.245 6 8192 2.619 3127.878 6 8192 4.562 1795.743 6 16384 5.137 3189.431 6 16384 10.831 1512.712 6 32768 16.548 1980.189 6 32768 21.795 1503.462 6 65536 42.263 1550.670 6 65536 38.935 1683.218 6 131072 87.775 1493.269 6 131072 73.146 1791.926 6 262144 165.623 1582.774 6 262144 163.291 1605.380 6 524288 328.345 1596.759 6 524288 372.375 1407.957 6 1048576 966.395 1085.039 6 1048576 723.185 1449.942 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1653.038 37.036 3189.431 1293.517 100.462 1797.245 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 7 4 0.079 50.534 7 4 0.050 80.274 7 8 0.057 140.395 7 8 0.055 145.257 7 16 0.056 285.570 7 16 0.038 419.430 7 32 0.059 541.201 7 32 0.051 627.186 7 64 0.065 983.280 7 64 0.066 969.081 7 128 0.080 1597.830 7 128 0.104 1231.355 7 256 0.121 2113.665 7 256 0.183 1398.101 7 512 0.194 2638.186 7 512 0.332 1541.625 7 1024 0.356 2876.736 7 1024 0.676 1514.980 7 2048 0.681 3006.627 7 2048 1.222 1676.085 7 4096 1.343 3049.861 7 4096 2.425 1689.103 7 8192 2.644 3098.263 7 8192 4.798 1707.316 7 16384 5.262 3113.564 7 16384 9.565 1712.934 7 32768 14.529 2255.353 7 32768 19.097 1715.885 7 65536 35.618 1839.965 7 65536 38.983 1681.138 7 131072 82.084 1596.800 7 131072 80.429 1629.659 7 262144 163.769 1600.694 7 262144 173.056 1514.792 7 524288 369.750 1417.953 7 524288 422.401 1241.209 7 1048576 1355.063 773.821 7 1048576 827.127 1267.733 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1735.805 50.534 3113.564 1250.692 80.274 1715.885 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 8 4 0.042 95.325 8 4 0.075 53.261 8 8 0.052 153.919 8 8 0.045 177.537 8 16 0.054 296.942 8 16 0.039 411.711 8 32 0.056 571.139 8 32 0.049 651.542 8 64 0.057 1123.161 8 64 0.063 1012.964 8 128 0.073 1754.480 8 128 0.095 1345.541 8 256 0.114 2246.322 8 256 0.159 1609.808 8 512 0.198 2587.330 8 512 0.286 1789.570 8 1024 0.364 2812.683 8 1024 0.539 1899.587 8 2048 0.697 2938.739 8 2048 1.106 1851.678 8 4096 1.376 2976.931 8 4096 2.062 1986.342 8 8192 2.726 3005.050 8 8192 4.112 1992.215 8 16384 5.475 2992.487 8 16384 8.238 1988.814 8 32768 15.495 2114.738 8 32768 16.305 2009.694 8 65536 38.939 1683.043 8 65536 33.180 1975.166 8 131072 85.077 1540.627 8 131072 73.070 1793.786 8 262144 178.622 1467.591 8 262144 203.704 1286.888 8 524288 380.350 1378.435 8 524288 325.536 1610.538 8 1048576 1532.529 684.213 8 1048576 1173.707 893.388 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1706.482 95.325 3005.050 1386.317 53.261 2009.694 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 9 4 0.065 61.455 9 4 0.110 36.393 9 8 0.086 92.949 9 8 0.084 95.325 9 16 0.082 195.653 9 16 0.060 266.305 9 32 0.086 372.827 9 32 0.074 432.960 9 64 0.106 603.226 9 64 0.101 633.102 9 128 0.137 935.315 9 128 0.161 795.364 9 256 0.194 1319.093 9 256 0.286 895.531 9 512 0.361 1418.417 9 512 0.526 973.474 9 1024 0.564 1815.286 9 1024 0.997 1027.258 9 2048 1.077 1901.690 9 2048 1.962 1043.861 9 4096 2.116 1935.760 9 4096 3.860 1061.141 9 8192 4.684 1748.943 9 8192 7.636 1072.803 9 16384 8.370 1957.429 9 16384 15.304 1070.564 9 32768 23.168 1414.359 9 32768 30.751 1065.592 9 65536 55.319 1184.691 9 65536 63.291 1035.470 9 131072 121.022 1083.043 9 131072 146.014 897.667 9 262144 263.057 996.529 9 262144 291.697 898.686 9 524288 544.491 962.896 9 524288 587.299 892.711 9 1048576 1402.228 747.793 9 1048576 1429.417 733.569 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1091.966 61.455 1957.429 785.672 36.393 1072.803 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 10 4 0.105 38.130 10 4 0.059 67.924 10 8 0.086 92.949 10 8 0.083 96.145 10 16 0.083 192.842 10 16 0.059 270.600 10 32 0.087 367.720 10 32 0.076 420.745 10 64 0.108 592.573 10 64 0.102 628.654 10 128 0.127 1007.262 10 128 0.170 752.975 10 256 0.181 1414.680 10 256 0.290 883.011 10 512 0.311 1645.581 10 512 0.529 967.771 10 1024 0.572 1790.316 10 1024 1.066 960.628 10 2048 1.650 1241.141 10 2048 1.955 1047.553 10 4096 2.206 1856.882 10 4096 3.874 1057.288 10 8192 4.287 1910.891 10 8192 7.675 1067.371 10 16384 8.569 1912.008 10 16384 15.414 1062.930 10 32768 23.449 1397.405 10 32768 30.574 1071.757 10 65536 58.764 1115.236 10 65536 62.770 1044.067 10 131072 125.489 1044.490 10 131072 136.313 961.552 10 262144 181.845 1441.580 10 262144 200.107 1310.020 10 524288 452.774 1157.947 10 524288 420.063 1248.117 10 1048576 1170.650 895.721 10 1048576 919.921 1139.854 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1111.334 38.130 1912.008 845.209 67.924 1310.020 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 11 4 0.079 50.686 11 4 0.049 81.443 11 8 0.057 140.395 11 8 0.054 148.471 11 16 0.057 279.620 11 16 0.039 411.711 11 32 0.059 543.392 11 32 0.052 615.678 11 64 0.068 941.879 11 64 0.075 852.176 11 128 0.084 1520.881 11 128 0.117 1093.423 11 256 0.133 1924.269 11 256 0.202 1267.700 11 512 0.216 2370.291 11 512 0.371 1380.131 11 1024 0.397 2579.560 11 1024 0.703 1456.415 11 2048 0.755 2712.325 11 2048 1.424 1438.368 11 4096 1.558 2628.901 11 4096 2.733 1498.724 11 8192 2.911 2814.065 11 8192 5.391 1519.536 11 16384 5.844 2803.618 11 16384 11.170 1466.798 11 32768 18.177 1802.714 11 32768 24.650 1329.325 11 65536 41.731 1570.444 11 65536 54.228 1208.525 11 131072 92.313 1419.864 11 131072 112.020 1170.077 11 262144 205.082 1278.240 11 262144 231.958 1130.135 11 524288 372.994 1405.621 11 524288 490.544 1068.789 11 1048576 1569.861 667.942 11 1048576 1417.162 739.913 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1550.248 50.686 2814.065 1046.176 81.443 1519.536 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 12 4 0.065 61.681 12 4 0.079 50.686 12 8 0.086 92.949 12 8 0.084 95.325 12 16 0.083 192.842 12 16 0.058 276.168 12 32 0.087 367.720 12 32 0.077 415.535 12 64 0.100 639.132 12 64 0.111 576.042 12 128 0.127 1007.262 12 128 0.174 735.440 12 256 0.195 1312.643 12 256 0.295 868.021 12 512 0.335 1528.458 12 512 0.786 651.345 12 1024 0.662 1547.178 12 1024 1.016 1007.972 12 2048 1.160 1765.297 12 2048 2.951 694.024 12 4096 2.268 1806.126 12 4096 4.365 938.380 12 8192 4.829 1696.442 12 8192 7.971 1027.719 12 16384 9.323 1757.397 12 16384 16.783 976.226 12 32768 26.191 1251.117 12 32768 33.979 964.362 12 65536 65.279 1003.937 12 65536 80.837 810.718 12 131072 140.986 929.681 12 131072 162.005 809.061 12 262144 278.053 942.784 12 262144 317.797 824.879 12 524288 599.059 875.186 12 524288 643.090 815.264 12 1048576 1606.330 652.777 12 1048576 995.421 1053.400 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1022.664 61.681 1806.126 715.293 50.686 1053.400 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 13 4 0.043 93.207 13 4 0.077 51.942 13 8 0.057 139.810 13 8 0.056 142.785 13 16 0.056 285.570 13 16 0.040 399.458 13 32 0.060 532.610 13 32 0.052 615.678 13 64 0.068 941.879 13 64 0.075 852.176 13 128 0.097 1319.093 13 128 0.119 1075.894 13 256 0.136 1883.758 13 256 0.211 1213.268 13 512 0.225 2274.877 13 512 0.390 1312.643 13 1024 0.413 2479.773 13 1024 0.800 1280.169 13 2048 0.789 2595.146 13 2048 1.444 1418.183 13 4096 1.546 2649.579 13 4096 2.866 1429.155 13 8192 3.095 2646.721 13 8192 5.691 1439.453 13 16384 6.112 2680.690 13 16384 12.151 1348.366 13 32768 17.636 1858.011 13 32768 28.618 1145.019 13 65536 39.021 1679.505 13 65536 61.931 1058.212 13 131072 122.128 1073.235 13 131072 116.900 1121.230 13 262144 204.158 1284.025 13 262144 252.843 1036.785 13 524288 411.603 1273.770 13 524288 494.814 1059.566 13 1048576 1636.328 640.810 13 1048576 1534.200 683.468 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1491.162 93.207 2680.690 983.339 51.942 1439.453 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 14 4 0.099 40.427 14 4 0.059 67.650 14 8 0.085 93.990 14 8 0.083 96.421 14 16 0.087 183.860 14 16 0.062 258.111 14 32 0.091 351.355 14 32 0.077 415.535 14 64 0.105 610.081 14 64 0.111 576.042 14 128 0.136 940.229 14 128 0.183 699.962 14 256 0.200 1279.788 14 256 0.321 797.136 14 512 0.347 1474.920 14 512 0.586 874.027 14 1024 0.634 1615.257 14 1024 1.166 878.316 14 2048 1.210 1692.598 14 2048 2.175 941.672 14 4096 2.395 1710.291 14 4096 5.866 698.255 14 8192 4.798 1707.401 14 8192 8.873 923.252 14 16384 9.408 1741.497 14 16384 17.200 952.559 14 32768 25.395 1290.325 14 32768 36.607 895.129 14 65536 62.286 1052.180 14 65536 81.975 799.463 14 131072 131.350 997.883 14 131072 196.949 665.512 14 262144 338.609 774.179 14 262144 375.820 697.525 14 524288 567.484 923.882 14 524288 705.064 743.603 14 1048576 1573.973 666.197 14 1048576 1619.872 647.320 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1007.702 40.427 1741.497 664.605 67.650 952.559 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 15 4 0.080 49.932 15 4 0.048 83.469 15 8 0.057 140.395 15 8 0.055 145.257 15 16 0.121 132.365 15 16 0.040 399.458 15 32 0.059 541.201 15 32 0.051 627.186 15 64 0.068 941.879 15 64 0.091 702.711 15 128 0.093 1376.592 15 128 0.123 1040.448 15 256 0.143 1789.570 15 256 0.220 1163.317 15 512 0.233 2198.039 15 512 0.408 1254.371 15 1024 0.433 2365.070 15 1024 0.777 1318.283 15 2048 0.825 2481.923 15 2048 1.545 1325.607 15 4096 1.616 2534.652 15 4096 2.997 1366.736 15 8192 3.202 2558.241 15 8192 5.980 1369.896 15 16384 6.434 2546.486 15 16384 11.934 1372.907 15 32768 17.127 1913.259 15 32768 25.486 1285.726 15 65536 40.597 1614.299 15 65536 57.525 1139.263 15 131072 98.897 1325.339 15 131072 145.304 902.054 15 262144 244.431 1072.466 15 262144 255.128 1027.500 15 524288 461.736 1135.471 15 524288 489.405 1071.276 15 1048576 1404.463 746.603 15 1048576 2050.766 511.309 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1445.462 49.932 2558.241 952.988 83.469 1372.907 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 16 4 0.094 42.582 16 4 0.092 43.464 16 8 0.109 73.423 16 8 0.070 114.520 16 16 0.116 137.801 16 16 0.056 285.570 16 32 0.172 185.897 16 32 0.073 438.620 16 64 0.126 508.400 16 64 0.101 633.102 16 128 0.163 784.899 16 128 0.153 836.248 16 256 0.239 1070.530 16 256 0.253 1012.009 16 512 0.392 1306.255 16 512 0.489 1047.042 16 1024 0.692 1479.493 16 1024 0.888 1153.011 16 2048 1.312 1560.955 16 2048 1.688 1213.268 16 4096 2.503 1636.490 16 4096 3.310 1237.475 16 8192 4.995 1640.083 16 8192 6.515 1257.447 16 16384 10.376 1579.032 16 16384 12.994 1260.885 16 32768 25.901 1265.121 16 32768 30.259 1082.921 16 65536 65.375 1002.461 16 65536 71.519 916.342 16 131072 141.552 925.964 16 131072 146.769 893.049 16 262144 292.107 897.424 16 262144 302.898 865.453 16 524288 610.461 858.839 16 524288 618.427 847.777 16 1048576 1353.084 774.953 16 1048576 1520.120 689.798 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 933.190 42.582 1640.083 833.053 43.464 1260.885 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 17 4 0.079 50.686 17 4 0.040 99.864 17 8 0.054 147.817 17 8 0.166 48.210 17 16 0.063 254.200 17 16 0.044 362.751 17 32 0.071 450.395 17 32 0.460 69.579 17 64 0.073 877.240 17 64 0.075 854.890 17 128 0.098 1306.255 17 128 0.124 1032.444 17 256 0.148 1729.053 17 256 0.220 1163.317 17 512 0.247 2072.861 17 512 0.459 1115.576 17 1024 0.451 2270.067 17 1024 0.807 1268.823 17 2048 0.859 2384.106 17 2048 1.583 1293.665 17 4096 1.698 2412.225 17 4096 3.136 1306.156 17 8192 3.370 2430.827 17 8192 6.253 1310.090 17 16384 6.630 2471.212 17 16384 12.585 1301.875 17 32768 17.129 1913.019 17 32768 27.963 1171.827 17 65536 39.869 1643.781 17 65536 60.414 1084.780 17 131072 90.382 1450.202 17 131072 122.092 1073.551 17 262144 215.820 1214.641 17 262144 260.138 1007.711 17 524288 393.345 1332.896 17 524288 509.908 1028.201 17 1048576 1345.493 779.325 17 1048576 1979.598 529.691 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1431.095 50.686 2471.212 901.211 48.210 1310.090 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 18 4 0.098 40.820 18 4 0.069 57.852 18 8 0.081 98.690 18 8 0.084 95.325 18 16 0.084 190.650 18 16 0.059 271.696 18 32 0.095 336.385 18 32 0.076 420.745 18 64 0.111 576.042 18 64 0.113 566.320 18 128 0.147 870.131 18 128 0.186 688.296 18 256 0.220 1163.317 18 256 0.340 752.447 18 512 0.378 1354.879 18 512 0.633 808.845 18 1024 0.690 1484.094 18 1024 1.271 805.659 18 2048 1.316 1556.148 18 2048 2.380 860.456 18 4096 2.601 1574.834 18 4096 4.747 862.833 18 8192 5.135 1595.308 18 8192 9.417 869.911 18 16384 10.156 1613.209 18 16384 19.189 853.828 18 32768 27.494 1191.826 18 32768 43.777 748.521 18 65536 64.277 1019.584 18 65536 90.913 720.866 18 131072 145.292 902.128 18 131072 184.628 709.925 18 262144 289.841 904.441 18 262144 375.030 698.995 18 524288 631.107 830.743 18 524288 787.607 665.672 18 1048576 1943.711 539.471 18 1048576 1868.307 561.244 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 939.090 40.820 1613.209 632.602 57.852 869.911 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 19 4 0.063 63.550 19 4 0.097 41.222 19 8 0.082 97.542 19 8 0.084 95.325 19 16 0.084 190.650 19 16 0.059 271.696 19 32 0.095 336.385 19 32 0.079 405.492 19 64 0.110 581.029 19 64 0.115 555.767 19 128 0.145 881.561 19 128 0.196 652.334 19 256 0.307 834.298 19 256 0.344 744.104 19 512 0.380 1347.229 19 512 0.656 780.619 19 1024 0.699 1464.859 19 1024 1.259 813.287 19 2048 1.337 1531.729 19 2048 2.506 817.233 19 4096 2.645 1548.573 19 4096 4.888 837.961 19 8192 5.247 1561.239 19 8192 9.740 841.078 19 16384 10.347 1583.435 19 16384 20.588 795.806 19 32768 28.224 1160.998 19 32768 44.028 744.253 19 65536 70.334 931.783 19 65536 94.008 697.132 19 131072 145.398 901.471 19 131072 191.744 683.578 19 262144 297.630 880.771 19 262144 395.486 662.840 19 524288 655.269 800.111 19 524288 990.235 529.458 19 1048576 1715.600 611.201 19 1048576 1347.570 778.124 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 910.969 63.550 1583.435 618.279 41.222 841.078 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 20 4 0.074 54.120 20 4 0.048 83.469 20 8 0.054 147.817 20 8 0.056 142.785 20 16 0.056 285.570 20 16 0.040 399.458 20 32 0.064 500.812 20 32 0.051 630.130 20 64 0.072 888.859 20 64 0.076 841.490 20 128 0.098 1306.255 20 128 0.130 983.280 20 256 0.151 1696.275 20 256 0.228 1123.161 20 512 0.260 1968.363 20 512 0.424 1207.130 20 1024 0.477 2146.410 20 1024 0.814 1258.045 20 2048 0.910 2250.441 20 2048 1.623 1261.927 20 4096 1.782 2298.618 20 4096 3.172 1291.331 20 8192 3.540 2314.099 20 8192 6.314 1297.426 20 16384 7.047 2324.981 20 16384 14.364 1140.629 20 32768 19.162 1710.057 20 32768 28.408 1153.476 20 65536 43.313 1513.078 20 65536 63.947 1024.845 20 131072 100.157 1308.665 20 131072 126.423 1036.772 20 262144 201.092 1303.602 20 262144 276.717 947.336 20 524288 737.232 711.157 20 524288 589.357 889.593 20 1048576 1700.616 616.586 20 1048576 1864.753 562.314 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1333.988 54.120 2324.981 909.189 83.469 1297.426 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 21 4 0.062 64.528 21 4 0.097 41.222 21 8 0.082 97.826 21 8 0.084 95.055 21 16 0.085 187.980 21 16 0.060 266.305 21 32 0.094 340.654 21 32 0.078 410.452 21 64 0.110 582.289 21 64 0.115 556.920 21 128 0.155 825.955 21 128 0.196 653.128 21 256 0.238 1074.817 21 256 0.355 721.116 21 512 0.459 1114.997 21 512 0.677 756.156 21 1024 0.726 1410.498 21 1024 1.302 786.480 21 2048 1.389 1474.667 21 2048 2.576 795.070 21 4096 2.721 1505.421 21 4096 5.104 802.498 21 8192 8.292 987.945 21 8192 10.124 809.169 21 16384 13.418 1221.028 21 16384 20.632 794.105 21 32768 32.558 1006.451 21 32768 49.555 661.244 21 65536 73.392 892.959 21 65536 105.546 620.924 21 131072 198.593 660.003 21 131072 228.792 572.887 21 262144 366.556 715.154 21 262144 416.620 629.216 21 524288 644.701 813.227 21 524288 825.302 635.268 21 1048576 1785.657 587.221 21 1048576 2161.481 485.119 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 819.138 64.528 1505.421 583.807 41.222 809.169 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 22 4 0.101 39.662 22 4 0.072 55.554 22 8 0.081 98.690 22 8 0.084 95.325 22 16 0.084 190.650 22 16 0.060 266.305 22 32 0.093 344.148 22 32 0.079 405.492 22 64 0.108 592.573 22 64 0.123 520.224 22 128 0.156 819.650 22 128 0.199 642.959 22 256 0.232 1103.537 22 256 0.429 596.855 22 512 0.400 1280.551 22 512 0.678 755.093 22 1024 0.736 1391.308 22 1024 1.305 784.612 22 2048 1.411 1451.493 22 2048 2.666 768.193 22 4096 2.794 1465.984 22 4096 5.100 803.135 22 8192 5.555 1474.667 22 8192 10.164 805.980 22 16384 10.976 1492.701 22 16384 20.244 809.321 22 32768 29.211 1121.767 22 32768 46.444 705.539 22 65536 69.376 944.650 22 65536 97.038 675.364 22 131072 159.747 820.498 22 131072 197.562 663.447 22 262144 309.028 848.286 22 262144 434.374 603.499 22 524288 611.825 856.925 22 524288 609.678 859.942 22 1048576 1789.757 585.876 22 1048576 1633.006 642.114 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 890.717 39.662 1492.701 603.103 55.554 859.942 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 23 4 0.061 65.536 23 4 0.098 40.820 23 8 0.083 96.421 23 8 0.083 96.421 23 16 0.084 190.110 23 16 0.059 271.696 23 32 0.095 337.230 23 32 0.078 410.452 23 64 0.108 592.573 23 64 0.123 520.224 23 128 0.154 831.070 23 128 0.208 614.972 23 256 0.244 1049.601 23 256 0.366 699.506 23 512 0.406 1261.000 23 512 0.700 731.432 23 1024 0.748 1369.132 23 1024 1.401 730.934 23 2048 1.437 1425.006 23 2048 2.646 773.938 23 4096 2.842 1441.143 23 4096 5.270 777.229 23 8192 5.634 1454.073 23 8192 10.473 782.201 23 16384 11.267 1454.165 23 16384 20.987 780.672 23 32768 29.594 1107.254 23 32768 48.026 682.299 23 65536 72.276 906.745 23 65536 104.944 624.485 23 131072 151.562 864.808 23 131072 199.931 655.586 23 262144 311.561 841.389 23 262144 447.677 585.565 23 524288 656.944 798.071 23 524288 1015.455 516.308 23 1048576 1701.414 616.297 23 1048576 1908.419 549.448 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 879.033 65.536 1454.165 570.747 40.820 782.201 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 24 4 0.091 43.919 24 4 0.058 69.042 24 8 0.082 97.542 24 8 0.152 52.593 24 16 0.083 192.842 24 16 0.062 258.111 24 32 0.095 337.230 24 32 0.075 427.445 24 64 0.110 582.289 24 64 0.122 524.288 24 128 0.154 831.070 24 128 0.194 660.358 24 256 0.241 1062.059 24 256 0.340 752.975 24 512 0.413 1239.887 24 512 0.633 808.845 24 1024 0.761 1345.963 24 1024 1.211 845.466 24 2048 1.499 1366.084 24 2048 2.372 863.397 24 4096 2.898 1413.399 24 4096 4.713 869.119 24 8192 5.860 1397.931 24 8192 10.007 818.635 24 16384 11.396 1437.706 24 16384 18.956 864.309 24 32768 30.910 1060.109 24 32768 44.706 732.969 24 65536 76.220 859.826 24 65536 95.410 686.889 24 131072 161.326 812.467 24 131072 198.018 661.919 24 262144 376.555 696.164 24 262144 436.462 600.611 24 524288 771.385 679.671 24 524288 854.423 613.617 24 1048576 1749.073 599.504 24 1048576 2182.932 480.352 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 845.035 43.919 1437.706 610.049 52.593 869.119 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 25 4 0.084 47.528 25 4 0.072 55.554 25 8 0.081 98.690 25 8 0.083 96.421 25 16 0.085 188.508 25 16 0.063 254.200 25 32 0.124 258.111 25 32 0.078 410.452 25 64 0.117 546.712 25 64 0.123 520.224 25 128 0.161 795.364 25 128 0.207 618.515 25 256 0.248 1031.452 25 256 0.374 684.348 25 512 0.420 1218.776 25 512 0.722 708.974 25 1024 0.776 1319.498 25 1024 1.443 709.677 25 2048 1.490 1374.390 25 2048 2.770 739.364 25 4096 2.927 1399.354 25 4096 5.913 692.709 25 8192 6.019 1360.997 25 8192 10.881 752.859 25 16384 11.793 1389.311 25 16384 23.187 706.598 25 32768 32.031 1023.007 25 32768 49.834 657.543 25 65536 72.349 905.831 25 65536 100.517 651.989 25 131072 158.048 829.318 25 131072 209.815 624.703 25 262144 339.629 771.854 25 262144 358.198 731.841 25 524288 491.284 1067.179 25 524288 581.417 901.742 25 1048576 1859.898 563.781 25 1048576 1955.754 536.149 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 852.087 47.528 1399.354 581.782 55.554 901.742 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 26 4 0.099 40.427 26 4 0.078 51.306 26 8 0.081 98.690 26 8 0.084 95.325 26 16 0.085 188.508 26 16 0.063 254.200 26 32 0.094 340.654 26 32 0.078 410.452 26 64 0.118 542.294 26 64 0.123 520.224 26 128 0.160 798.915 26 128 0.212 603.904 26 256 0.244 1048.576 26 256 0.386 663.213 26 512 0.424 1207.809 26 512 0.727 704.324 26 1024 0.854 1199.042 26 1024 1.392 735.566 26 2048 1.513 1353.598 26 2048 2.774 738.284 26 4096 2.977 1375.820 26 4096 5.451 751.427 26 8192 5.973 1371.537 26 8192 10.820 757.123 26 16384 11.772 1391.787 26 16384 21.802 751.492 26 32768 32.223 1016.914 26 32768 48.261 678.972 26 65536 72.966 898.173 26 65536 106.112 617.612 26 131072 163.872 799.844 26 131072 205.268 638.541 26 262144 337.068 777.718 26 262144 423.923 618.376 26 524288 703.207 745.567 26 524288 1036.915 505.623 26 1048576 1870.416 560.611 26 1048576 1970.139 532.235 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 829.289 40.427 1391.787 559.379 51.306 757.123 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 27 4 0.063 63.550 27 4 0.098 40.820 27 8 0.081 98.690 27 8 0.082 97.542 27 16 0.084 190.650 27 16 0.063 254.200 27 32 0.093 344.148 27 32 0.076 422.068 27 64 0.117 546.712 27 64 0.123 520.224 27 128 0.162 790.679 27 128 0.209 612.168 27 256 0.255 1004.436 27 256 0.386 663.213 27 512 0.501 1022.125 27 512 0.743 689.180 27 1024 0.802 1277.124 27 1024 1.436 713.094 27 2048 1.539 1330.741 27 2048 2.842 720.632 27 4096 3.045 1345.225 27 4096 5.701 718.492 27 8192 6.056 1352.692 27 8192 11.180 732.742 27 16384 12.097 1354.399 27 16384 22.793 718.815 27 32768 32.094 1021.001 27 32768 54.478 601.491 27 65536 89.671 730.850 27 65536 116.758 561.297 27 131072 178.645 733.701 27 131072 225.572 581.065 27 262144 351.259 746.298 27 262144 448.737 584.182 27 524288 753.119 696.156 27 524288 899.994 582.546 27 1048576 1738.170 603.264 27 1048576 2301.443 455.617 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 802.760 63.550 1354.399 540.494 40.820 732.742 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 28 4 0.105 38.130 28 4 0.072 55.554 28 8 0.081 98.690 28 8 0.084 95.055 28 16 0.087 184.365 28 16 0.061 262.144 28 32 0.094 340.654 28 32 0.075 427.445 28 64 0.179 357.437 28 64 0.122 525.314 28 128 0.158 810.983 28 128 0.216 592.573 28 256 0.250 1023.586 28 256 0.384 666.506 28 512 0.439 1166.477 28 512 0.722 709.209 28 1024 0.813 1259.521 28 1024 1.392 735.692 28 2048 1.600 1279.978 28 2048 2.733 749.362 28 4096 3.102 1320.411 28 4096 5.440 752.942 28 8192 6.135 1335.292 28 8192 10.846 755.308 28 16384 12.210 1341.863 28 16384 21.878 748.880 28 32768 33.070 990.865 28 32768 48.322 678.118 28 65536 81.129 807.802 28 65536 101.936 642.913 28 131072 168.914 775.968 28 131072 206.153 635.799 28 262144 351.199 746.426 28 262144 424.096 618.124 28 524288 745.219 703.535 28 524288 673.818 778.085 28 1048576 2011.812 521.210 28 1048576 2120.130 494.581 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 794.905 38.130 1341.863 574.927 55.554 778.085 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 29 4 0.065 61.455 29 4 0.094 42.582 29 8 0.146 54.828 29 8 0.084 95.325 29 16 0.084 190.650 29 16 0.063 253.241 29 32 0.094 339.792 29 32 0.077 415.535 29 64 0.118 542.294 29 64 0.123 520.224 29 128 0.168 761.519 29 128 0.219 584.827 29 256 0.261 980.586 29 256 0.396 646.443 29 512 0.445 1150.849 29 512 0.768 666.506 29 1024 0.827 1238.457 29 1024 1.505 680.337 29 2048 1.590 1288.233 29 2048 2.933 698.255 29 4096 3.126 1310.340 29 4096 5.796 706.700 29 8192 6.327 1294.786 29 8192 11.657 702.754 29 16384 12.454 1315.583 29 16384 23.179 706.852 29 32768 33.258 985.268 29 32768 54.267 603.830 29 65536 78.308 836.899 29 65536 112.465 582.724 29 131072 170.848 767.185 29 131072 232.845 562.915 29 262144 527.683 496.783 29 262144 505.427 518.658 29 524288 814.550 643.654 29 524288 986.587 531.416 29 1048576 2008.297 522.122 29 1048576 2458.344 426.538 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 777.962 54.828 1315.583 523.456 42.582 706.852 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 30 4 0.101 39.569 30 4 0.071 56.299 30 8 0.082 97.542 30 8 0.084 95.055 30 16 0.121 132.365 30 16 0.060 267.366 30 32 0.129 248.092 30 32 0.076 420.745 30 64 0.155 412.978 30 64 0.122 524.288 30 128 0.205 624.269 30 128 0.216 592.573 30 256 0.291 879.395 30 256 0.406 630.500 30 512 0.486 1053.721 30 512 0.827 619.050 30 1024 0.873 1172.847 30 1024 1.481 691.398 30 2048 1.648 1242.757 30 2048 2.933 698.255 30 4096 3.239 1264.620 30 4096 5.803 705.829 30 8192 6.367 1286.641 30 8192 11.539 709.941 30 16384 12.635 1296.716 30 16384 23.423 699.485 30 32768 33.825 968.746 30 32768 54.532 600.894 30 65536 79.015 829.412 30 65536 113.982 574.968 30 131072 173.037 757.479 30 131072 229.574 570.936 30 262144 359.934 728.311 30 262144 481.695 544.212 30 524288 793.351 660.852 30 524288 1020.094 513.960 30 1048576 2131.010 492.056 30 1048576 2456.085 426.930 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 746.756 39.569 1296.716 523.299 56.299 709.941 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 31 4 0.102 39.199 31 4 0.072 55.554 31 8 0.081 98.981 31 8 0.084 95.325 31 16 0.084 190.110 31 16 0.058 275.036 31 32 0.095 336.385 31 32 0.076 420.745 31 64 0.121 529.458 31 64 0.122 524.288 31 128 0.170 752.975 31 128 0.216 592.573 31 256 0.845 302.975 31 256 0.408 627.552 31 512 0.455 1124.926 31 512 0.789 648.983 31 1024 0.936 1093.980 31 1024 1.580 648.101 31 2048 1.639 1249.627 31 2048 3.381 605.778 31 4096 3.230 1268.074 31 4096 6.436 636.409 31 8192 6.741 1215.242 31 8192 12.751 642.466 31 16384 13.741 1192.343 31 16384 25.805 634.916 31 32768 36.930 887.304 31 32768 57.594 568.948 31 65536 86.797 755.049 31 65536 122.628 534.429 31 131072 197.287 664.372 31 131072 238.598 549.343 31 262144 366.336 715.583 31 262144 479.322 546.906 31 524288 821.653 638.089 31 524288 1010.241 518.973 31 1048576 2331.820 449.681 31 1048576 2310.960 453.740 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 710.755 39.199 1268.074 504.214 55.554 648.983 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 32 4 0.042 95.325 32 4 0.047 85.164 32 8 0.050 159.783 32 8 0.055 145.257 32 16 0.054 296.942 32 16 0.063 254.200 32 32 0.074 431.568 32 32 0.069 462.820 32 64 0.102 627.186 32 64 0.092 695.429 32 128 0.157 814.675 32 128 0.134 955.286 32 256 0.268 955.286 32 256 0.219 1168.381 32 512 0.469 1091.756 32 512 0.393 1302.295 32 1024 0.889 1152.084 32 1024 0.793 1291.331 32 2048 1.746 1173.008 32 2048 1.413 1449.533 32 4096 3.495 1171.967 32 4096 2.810 1457.651 32 8192 6.835 1198.540 32 8192 5.567 1471.509 32 16384 13.736 1192.777 32 16384 12.172 1346.042 32 32768 35.114 933.188 32 32768 44.397 738.070 32 65536 81.073 808.357 32 65536 90.944 720.619 32 131072 176.658 741.954 32 131072 186.330 703.440 32 262144 364.576 719.038 32 262144 388.836 674.176 32 524288 1020.410 513.801 32 524288 1052.240 498.259 32 1048576 1973.637 531.291 32 1048576 2353.791 445.484 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 768.870 95.325 1198.540 834.997 85.164 1471.509 stats by bits per item pack: unpack: bits avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1 2018.653 105.517 3670.912 1572.945 64.528 2110.468 2 1923.681 102.928 3560.041 1541.268 59.705 2094.946 3 1892.187 95.325 3460.892 1456.225 57.260 1960.277 4 1843.843 48.210 3352.006 1456.475 117.323 2041.122 5 1815.079 48.771 3270.176 1335.982 99.864 1829.202 6 1653.038 37.036 3189.431 1293.517 100.462 1797.245 7 1735.805 50.534 3113.564 1250.692 80.274 1715.885 8 1706.482 95.325 3005.050 1386.317 53.261 2009.694 9 1091.966 61.455 1957.429 785.672 36.393 1072.803 10 1111.334 38.130 1912.008 845.209 67.924 1310.020 11 1550.248 50.686 2814.065 1046.176 81.443 1519.536 12 1022.664 61.681 1806.126 715.293 50.686 1053.400 13 1491.162 93.207 2680.690 983.339 51.942 1439.453 14 1007.702 40.427 1741.497 664.605 67.650 952.559 15 1445.462 49.932 2558.241 952.988 83.469 1372.907 16 933.190 42.582 1640.083 833.053 43.464 1260.885 17 1431.095 50.686 2471.212 901.211 48.210 1310.090 18 939.090 40.820 1613.209 632.602 57.852 869.911 19 910.969 63.550 1583.435 618.279 41.222 841.078 20 1333.988 54.120 2324.981 909.189 83.469 1297.426 21 819.138 64.528 1505.421 583.807 41.222 809.169 22 890.717 39.662 1492.701 603.103 55.554 859.942 23 879.033 65.536 1454.165 570.747 40.820 782.201 24 845.035 43.919 1437.706 610.049 52.593 869.119 25 852.087 47.528 1399.354 581.782 55.554 901.742 26 829.289 40.427 1391.787 559.379 51.306 757.123 27 802.760 63.550 1354.399 540.494 40.820 732.742 28 794.905 38.130 1341.863 574.927 55.554 778.085 29 777.962 54.828 1315.583 523.456 42.582 706.852 30 746.756 39.569 1296.716 523.299 56.299 709.941 31 710.755 39.199 1268.074 504.214 55.554 648.983 32 768.870 95.325 1198.540 834.997 85.164 1471.509 stats by size pack: unpack: size(B) avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4 58.430 37.036 105.517 63.985 36.393 117.323 8 115.579 54.828 182.361 119.743 48.210 204.600 16 224.073 132.365 307.839 320.417 253.241 422.068 32 417.147 185.897 591.268 488.629 69.579 651.542 64 720.422 357.437 1123.161 707.004 520.224 1016.801 128 1130.248 624.269 1910.573 891.414 584.827 1362.617 256 1480.842 302.975 2485.513 1026.896 596.855 1651.910 512 1790.390 1022.125 3081.038 1102.602 619.050 1848.093 1024 1962.917 1093.980 3379.203 1161.679 648.101 1980.160 2048 2037.769 1173.008 3537.864 1183.492 605.778 2046.197 4096 2029.309 1171.967 3474.190 1205.888 636.409 2080.139 8192 2081.386 987.945 3623.298 1223.132 642.466 2099.459 16384 2114.403 1192.343 3670.912 1199.526 634.916 2101.320 32768 1524.387 887.304 2567.609 1117.888 568.948 2089.659 65536 1254.115 730.850 2049.217 1055.458 534.429 2110.468 131072 1116.604 660.003 1821.379 1043.378 549.343 2099.571 262144 1078.236 496.783 1755.222 1005.552 518.658 2099.166 524288 1029.450 513.801 1692.649 992.955 498.259 2078.224 1048576 738.168 449.681 1355.058 828.940 426.538 1963.636 real 2m 58.65s user 2m 52.40s sys 0m 0.29s ================================================ FILE: benchmark/PackedArraySIMDSelfBench-unrolled-ipad2-cortex-a9-1GHz.txt ================================================ -- PackedArray self bench ------------------------------------------------------ memcpy: bits size (B) time (µs) speed (B/µs) 32 4 0.093 43.019 32 8 0.044 182.361 32 16 0.037 430.185 32 32 0.042 762.601 32 64 0.049 1303.085 32 128 0.068 1883.758 32 256 0.103 2485.513 32 512 0.178 2874.811 32 1024 0.320 3200.423 32 2048 0.629 3256.230 32 4096 1.206 3395.902 32 8192 2.377 3446.313 32 16384 4.695 3489.538 32 32768 10.028 3267.610 32 65536 24.318 2694.961 32 131072 50.777 2581.316 32 262144 100.611 2605.521 32 524288 282.260 1857.465 32 1048576 1798.694 582.965 avg (B/µs) min (B/µs) max (B/µs) 2123.346 43.019 3489.538 loopcpy: bits size (B) time (µs) speed (B/µs) 32 4 0.045 88.768 32 8 0.033 243.148 32 16 0.028 573.580 32 32 0.034 945.195 32 64 0.042 1525.201 32 128 0.060 2138.928 32 256 0.096 2671.000 32 512 0.168 3046.076 32 1024 0.312 3281.106 32 2048 0.636 3220.823 32 4096 1.196 3425.014 32 8192 2.351 3484.407 32 16384 4.694 3490.424 32 32768 10.046 3261.794 32 65536 24.647 2658.985 32 131072 51.390 2550.538 32 262144 103.224 2539.563 32 524288 337.085 1555.358 32 1048576 1828.402 573.493 avg (B/µs) min (B/µs) max (B/µs) 2172.284 88.768 3490.424 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 1 4 0.220 18.177 1 4 0.037 108.240 1 8 0.053 151.146 1 8 0.050 159.783 1 16 0.065 246.724 1 16 0.048 332.222 1 32 0.068 470.939 1 32 0.060 532.610 1 64 0.076 841.490 1 64 0.081 789.516 1 128 0.111 1154.561 1 128 0.117 1095.655 1 256 0.128 1999.519 1 256 0.189 1355.735 1 512 0.202 2535.400 1 512 0.334 1532.822 1 1024 0.368 2781.715 1 1024 0.624 1641.180 1 2048 0.698 2934.723 1 2048 1.205 1699.295 1 4096 1.370 2989.883 1 4096 2.388 1715.243 1 8192 2.700 3033.972 1 8192 4.686 1748.142 1 16384 5.343 3066.328 1 16384 9.336 1754.928 1 32768 13.639 2402.527 1 32768 18.641 1757.846 1 65536 39.997 1638.529 1 65536 37.228 1760.390 1 131072 88.701 1477.683 1 131072 74.444 1760.678 1 262144 179.259 1462.375 1 262144 148.933 1760.148 1 524288 364.637 1437.836 1 524288 298.123 1758.631 1 1048576 1211.193 865.738 1 1048576 604.531 1734.528 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1658.382 18.177 3066.328 1315.663 108.240 1760.678 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 2 4 0.170 23.530 2 4 0.043 92.692 2 8 0.061 131.072 2 8 0.053 151.146 2 16 0.071 225.198 2 16 0.051 313.593 2 32 0.075 426.088 2 32 0.058 552.336 2 64 0.082 780.336 2 64 0.076 841.490 2 128 0.099 1293.665 2 128 0.112 1142.279 2 256 0.126 2029.758 2 256 0.185 1383.688 2 512 0.212 2412.903 2 512 0.337 1519.804 2 1024 0.381 2687.714 2 1024 0.629 1628.115 2 2048 0.722 2835.898 2 2048 1.209 1693.933 2 4096 1.414 2897.111 2 4096 2.415 1695.940 2 8192 2.775 2952.121 2 8192 4.716 1737.095 2 16384 5.508 2974.612 2 16384 9.407 1741.674 2 32768 14.322 2287.942 2 32768 18.758 1746.876 2 65536 41.443 1581.349 2 65536 37.492 1747.998 2 131072 91.680 1429.671 2 131072 74.981 1748.070 2 262144 185.090 1416.305 2 262144 150.045 1747.103 2 524288 393.691 1331.724 2 524288 301.063 1741.457 2 1048576 1374.503 762.877 2 1048576 645.041 1625.596 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1604.204 23.530 2974.612 1307.941 92.692 1748.070 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 3 4 0.162 24.672 3 4 0.045 89.241 3 8 0.065 122.910 3 8 0.057 140.395 3 16 0.071 225.198 3 16 0.051 313.593 3 32 0.074 431.568 3 32 0.059 543.392 3 64 0.082 782.611 3 64 0.079 808.541 3 128 0.098 1306.255 3 128 0.115 1113.840 3 256 0.142 1804.608 3 256 0.198 1292.108 3 512 0.216 2370.291 3 512 0.354 1446.117 3 1024 0.391 2618.882 3 1024 0.667 1535.013 3 2048 0.740 2767.376 3 2048 1.290 1587.495 3 4096 1.468 2790.299 3 4096 2.565 1596.939 3 8192 2.856 2868.331 3 8192 5.047 1623.116 3 16384 5.676 2886.524 3 16384 10.048 1630.549 3 32768 15.133 2165.314 3 32768 20.043 1634.893 3 65536 42.919 1526.964 3 65536 40.068 1635.623 3 131072 93.822 1397.028 3 131072 80.141 1635.516 3 262144 189.589 1382.698 3 262144 160.347 1634.855 3 524288 382.178 1371.842 3 524288 336.937 1556.042 3 1048576 1488.833 704.294 3 1048576 709.701 1477.490 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1555.140 24.672 2886.524 1226.040 89.241 1635.623 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 4 4 0.165 24.245 4 4 0.045 88.768 4 8 0.060 133.153 4 8 0.057 140.395 4 16 0.067 238.822 4 16 0.048 333.875 4 32 0.070 458.081 4 32 0.057 561.580 4 64 0.079 810.983 4 64 0.077 831.070 4 128 0.085 1508.064 4 128 0.112 1144.714 4 256 0.129 1984.735 4 256 0.187 1369.569 4 512 0.218 2349.544 4 512 0.339 1510.185 4 1024 0.399 2565.691 4 1024 0.634 1615.257 4 2048 0.760 2694.459 4 2048 1.241 1650.324 4 4096 1.491 2747.460 4 4096 2.413 1697.448 4 8192 2.956 2771.394 4 8192 4.789 1710.631 4 16384 5.818 2816.141 4 16384 9.536 1718.159 4 32768 16.034 2043.672 4 32768 19.030 1721.926 4 65536 44.801 1462.825 4 65536 38.025 1723.502 4 131072 97.847 1339.561 4 131072 76.002 1724.589 4 262144 197.045 1330.377 4 262144 152.499 1718.989 4 524288 400.705 1308.414 4 524288 333.398 1572.558 4 1048576 1600.765 655.047 4 1048576 712.545 1471.593 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1539.088 24.245 2816.141 1279.217 88.768 1724.589 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 5 4 0.163 24.528 5 4 0.047 85.164 5 8 0.095 84.096 5 8 0.068 117.735 5 16 0.086 185.897 5 16 0.050 319.566 5 32 0.078 410.452 5 32 0.059 543.392 5 64 0.085 751.920 5 64 0.079 810.983 5 128 0.108 1185.146 5 128 0.124 1032.444 5 256 0.155 1651.910 5 256 0.217 1179.936 5 512 0.225 2274.877 5 512 0.378 1354.879 5 1024 0.430 2380.802 5 1024 0.728 1406.802 5 2048 0.790 2592.014 5 2048 1.420 1442.232 5 4096 1.575 2600.646 5 4096 2.769 1479.238 5 8192 3.085 2655.517 5 8192 5.514 1485.698 5 16384 6.023 2720.163 5 16384 10.835 1512.146 5 32768 16.672 1965.463 5 32768 21.462 1526.777 5 65536 45.574 1438.014 5 65536 42.905 1527.464 5 131072 98.978 1324.253 5 131072 85.820 1527.290 5 262144 198.792 1318.685 5 262144 179.593 1459.657 5 524288 406.154 1290.860 5 524288 381.964 1372.611 5 1048576 1696.306 618.153 5 1048576 815.637 1285.591 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1445.968 24.528 2720.163 1129.979 85.164 1527.464 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 6 4 0.164 24.385 6 4 0.051 78.398 6 8 0.076 105.186 6 8 0.067 119.411 6 16 0.073 219.310 6 16 0.052 307.839 6 32 0.078 410.452 6 32 0.062 516.222 6 64 0.085 754.032 6 64 0.080 801.300 6 128 0.101 1266.205 6 128 0.128 999.760 6 256 0.140 1829.202 6 256 0.210 1220.161 6 512 0.234 2189.076 6 512 0.383 1337.163 6 1024 0.423 2421.064 6 1024 0.720 1422.175 6 2048 0.803 2550.456 6 2048 1.405 1457.651 6 4096 1.575 2600.646 6 4096 2.734 1498.201 6 8192 3.114 2630.713 6 8192 5.441 1505.619 6 16384 6.144 2666.646 6 16384 10.824 1513.678 6 32768 16.686 1963.806 6 32768 21.586 1518.025 6 65536 47.349 1384.106 6 65536 43.132 1519.426 6 131072 101.825 1287.228 6 131072 86.334 1518.197 6 262144 205.356 1276.534 6 262144 190.047 1379.364 6 524288 456.346 1148.883 6 524288 394.222 1329.931 6 1048576 1785.823 587.167 6 1048576 880.483 1190.910 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1437.637 24.385 2666.646 1117.549 78.398 1519.426 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 7 4 0.171 23.367 7 4 0.051 78.398 7 8 0.076 105.517 7 8 0.066 121.135 7 16 0.072 222.215 7 16 0.051 313.593 7 32 0.076 420.745 7 32 0.062 514.244 7 64 0.083 771.366 7 64 0.078 820.904 7 128 0.104 1228.538 7 128 0.126 1016.801 7 256 0.152 1682.981 7 256 0.220 1163.317 7 512 0.236 2169.175 7 512 0.404 1266.952 7 1024 0.430 2380.802 7 1024 0.754 1358.307 7 2048 0.821 2494.174 7 2048 1.472 1391.308 7 4096 1.615 2536.148 7 4096 2.904 1410.498 7 8192 3.199 2560.911 7 8192 5.742 1426.662 7 16384 6.310 2596.519 7 16384 11.456 1430.166 7 32768 16.470 1989.562 7 32768 22.880 1432.163 7 65536 48.298 1356.913 7 65536 45.731 1433.074 7 131072 102.839 1274.536 7 131072 91.605 1430.840 7 262144 206.515 1269.370 7 262144 204.387 1282.587 7 524288 419.696 1249.209 7 524288 423.594 1237.713 7 1048576 1884.804 556.332 7 1048576 989.423 1059.785 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1415.178 23.367 2596.519 1062.550 78.398 1433.074 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 8 4 0.164 24.385 8 4 0.044 91.181 8 8 0.063 126.620 8 8 0.056 142.785 8 16 0.069 232.211 8 16 0.049 325.771 8 32 0.072 444.430 8 32 0.057 561.580 8 64 0.071 900.790 8 64 0.076 841.490 8 128 0.091 1405.421 8 128 0.114 1123.161 8 256 0.140 1829.202 8 256 0.189 1355.735 8 512 0.241 2124.118 8 512 0.345 1484.094 8 1024 0.439 2332.953 8 1024 0.649 1577.872 8 2048 0.840 2437.552 8 2048 1.258 1628.115 8 4096 1.665 2460.242 8 4096 2.478 1653.023 8 8192 3.273 2502.895 8 8192 4.920 1665.039 8 16384 6.479 2528.776 8 16384 9.797 1672.373 8 32768 17.464 1876.325 8 32768 19.541 1676.882 8 65536 49.436 1325.678 8 65536 39.070 1677.394 8 131072 104.896 1249.544 8 131072 78.378 1672.307 8 262144 210.844 1243.308 8 262144 181.813 1441.833 8 524288 425.944 1230.885 8 524288 374.754 1399.019 8 1048576 1969.948 532.286 8 1048576 973.794 1076.794 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1410.928 24.385 2528.776 1214.024 91.181 1677.394 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 9 4 0.171 23.399 9 4 0.053 75.573 9 8 0.077 103.884 9 8 0.067 119.411 9 16 0.072 222.215 9 16 0.049 327.360 9 32 0.077 415.535 9 32 0.059 543.392 9 64 0.085 751.920 9 64 0.083 771.366 9 128 0.112 1142.279 9 128 0.130 985.084 9 256 0.156 1639.300 9 256 0.233 1099.019 9 512 0.248 2064.888 9 512 0.441 1160.802 9 1024 0.452 2266.474 9 1024 0.801 1278.645 9 2048 0.863 2372.910 9 2048 1.557 1315.457 9 4096 1.692 2420.723 9 4096 3.095 1323.463 9 8192 3.344 2449.718 9 8192 6.099 1343.174 9 16384 6.685 2450.853 9 16384 12.154 1348.022 9 32768 18.219 1798.563 9 32768 24.292 1348.922 9 65536 50.418 1299.856 9 65536 48.528 1350.479 9 131072 106.310 1232.924 9 131072 101.434 1292.190 9 262144 213.548 1227.564 9 262144 226.618 1156.767 9 524288 433.486 1209.469 9 524288 462.508 1133.576 9 1048576 2040.990 513.758 9 1048576 1162.199 902.234 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1347.696 23.399 2450.853 993.418 75.573 1350.479 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 10 4 0.172 23.237 10 4 0.051 78.398 10 8 0.077 103.884 10 8 0.063 127.100 10 16 0.070 229.040 10 16 0.051 313.593 10 32 0.075 426.088 10 32 0.062 516.222 10 64 0.090 710.147 10 64 0.085 754.032 10 128 0.105 1217.394 10 128 0.138 928.842 10 256 0.148 1731.842 10 256 0.234 1094.538 10 512 0.253 2024.019 10 512 0.425 1204.422 10 1024 0.463 2211.621 10 1024 0.818 1251.812 10 2048 0.883 2319.097 10 2048 1.564 1309.441 10 4096 1.734 2362.143 10 4096 3.112 1316.263 10 8192 3.444 2378.660 10 8192 6.131 1336.175 10 16384 7.260 2256.797 10 16384 12.221 1340.659 10 32768 19.313 1696.672 10 32768 24.415 1342.125 10 65536 51.508 1272.341 10 65536 48.802 1342.892 10 131072 108.486 1208.191 10 131072 105.326 1244.442 10 262144 218.081 1202.049 10 262144 232.363 1128.166 10 524288 443.857 1181.209 10 524288 472.851 1108.780 10 1048576 2076.318 505.017 10 1048576 1248.503 839.867 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1318.918 23.237 2378.660 977.777 78.398 1342.892 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 11 4 0.172 23.269 11 4 0.115 34.808 11 8 0.077 103.884 11 8 0.066 121.135 11 16 0.074 215.784 11 16 0.052 307.839 11 32 0.077 415.535 11 32 0.062 516.222 11 64 0.088 727.467 11 64 0.095 672.771 11 128 0.107 1195.704 11 128 0.139 920.876 11 256 0.161 1590.729 11 256 0.247 1036.430 11 512 0.263 1946.948 11 512 0.445 1150.849 11 1024 0.477 2146.410 11 1024 0.844 1213.268 11 2048 0.907 2258.132 11 2048 1.645 1244.918 11 4096 1.775 2307.881 11 4096 3.257 1257.585 11 8192 3.498 2342.017 11 8192 6.455 1269.058 11 16384 6.989 2344.255 11 16384 12.857 1274.329 11 32768 19.570 1674.390 11 32768 25.696 1275.216 11 65536 52.772 1241.870 11 65536 51.390 1275.269 11 131072 110.850 1182.426 11 131072 114.695 1142.787 11 262144 222.838 1176.387 11 262144 248.198 1056.189 11 524288 455.722 1150.456 11 524288 503.070 1042.177 11 1048576 2128.202 492.705 11 1048576 1373.421 763.478 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1291.382 23.269 2344.255 925.011 34.808 1275.269 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 12 4 0.058 69.042 12 4 0.147 27.236 12 8 0.077 103.884 12 8 0.067 119.411 12 16 0.071 225.956 12 16 0.052 306.433 12 32 0.075 427.445 12 32 0.062 516.222 12 64 0.091 702.711 12 64 0.091 702.711 12 128 0.100 1281.315 12 128 0.140 914.601 12 256 0.156 1641.807 12 256 0.236 1084.588 12 512 0.268 1910.573 12 512 0.429 1193.046 12 1024 0.487 2102.285 12 1024 0.813 1259.521 12 2048 0.927 2209.345 12 2048 1.597 1282.463 12 4096 1.840 2225.948 12 4096 3.124 1311.140 12 8192 3.575 2291.413 12 8192 6.217 1317.677 12 16384 8.140 2012.755 12 16384 12.363 1325.249 12 32768 20.433 1603.684 12 32768 24.692 1327.079 12 65536 54.491 1202.693 12 65536 49.379 1327.207 12 131072 114.465 1145.084 12 131072 113.635 1153.447 12 262144 229.425 1142.613 12 262144 244.330 1072.910 12 524288 467.969 1120.348 12 524288 494.570 1060.089 12 1048576 2176.973 481.667 12 1048576 1423.655 736.538 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1257.925 69.042 2291.413 949.346 27.236 1327.207 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 13 4 0.058 68.759 13 4 0.164 24.385 13 8 0.077 103.884 13 8 0.071 112.599 13 16 0.075 213.722 13 16 0.051 313.593 13 32 0.077 415.535 13 32 0.063 508.400 13 64 0.087 737.460 13 64 0.095 674.461 13 128 0.118 1084.588 13 128 0.143 894.785 13 256 0.166 1540.519 13 256 0.254 1008.208 13 512 0.272 1882.107 13 512 0.468 1093.980 13 1024 0.496 2063.896 13 1024 0.888 1153.321 13 2048 0.948 2159.903 13 2048 1.732 1182.535 13 4096 1.873 2186.847 13 4096 3.444 1189.330 13 8192 3.664 2235.798 13 8192 6.808 1203.283 13 16384 7.312 2240.682 13 16384 13.563 1207.978 13 32768 21.492 1524.660 13 32768 27.122 1208.170 13 65536 54.874 1194.301 13 65536 54.298 1206.971 13 131072 114.413 1145.606 13 131072 124.777 1050.451 13 262144 230.143 1139.048 13 262144 262.783 997.568 13 524288 468.905 1118.111 13 524288 543.667 964.355 13 1048576 2228.466 470.537 13 1048576 1554.859 674.387 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1238.209 68.759 2240.682 877.303 24.385 1208.170 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 14 4 0.058 69.042 14 4 0.155 25.771 14 8 0.075 106.861 14 8 0.066 121.135 14 16 0.077 207.767 14 16 0.052 307.839 14 32 0.080 400.650 14 32 0.064 500.812 14 64 0.091 702.711 14 64 0.092 695.429 14 128 0.116 1104.673 14 128 0.151 848.137 14 256 0.165 1551.650 14 256 0.257 996.050 14 512 0.279 1835.456 14 512 0.475 1078.054 14 1024 0.509 2011.694 14 1024 0.898 1140.459 14 2048 0.969 2113.665 14 2048 1.745 1173.488 14 4096 1.914 2139.994 14 4096 3.464 1182.454 14 8192 3.746 2186.986 14 8192 6.843 1197.162 14 16384 7.473 2192.428 14 16384 13.638 1201.347 14 32768 22.363 1465.281 14 32768 27.261 1202.009 14 65536 55.753 1175.471 14 65536 54.543 1201.547 14 131072 118.507 1106.028 14 131072 127.590 1027.291 14 262144 232.067 1129.605 14 262144 267.656 979.407 14 524288 509.285 1029.459 14 524288 541.249 968.664 14 1048576 2290.526 457.788 14 1048576 1641.213 638.903 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1209.853 69.042 2192.428 867.682 25.771 1202.009 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 15 4 0.169 23.663 15 4 0.047 85.164 15 8 0.073 109.655 15 8 0.063 127.100 15 16 0.075 213.044 15 16 0.049 325.771 15 32 0.076 422.068 15 32 0.061 526.344 15 64 0.088 725.501 15 64 0.090 712.030 15 128 0.115 1111.534 15 128 0.149 860.370 15 256 0.175 1462.864 15 256 0.264 969.956 15 512 0.282 1815.286 15 512 0.488 1049.088 15 1024 0.515 1988.411 15 1024 0.955 1072.401 15 2048 0.986 2076.870 15 2048 1.819 1125.811 15 4096 1.950 2100.742 15 4096 3.601 1137.438 15 8192 3.823 2142.796 15 8192 7.171 1142.354 15 16384 9.325 1756.992 15 16384 14.282 1147.179 15 32768 22.065 1485.072 15 32768 28.520 1148.953 15 65536 57.826 1133.330 15 65536 60.830 1077.365 15 131072 117.795 1112.713 15 131072 133.640 980.784 15 262144 235.414 1113.546 15 262144 277.415 944.953 15 524288 484.831 1081.383 15 524288 560.328 935.681 15 1048576 2371.854 442.091 15 1048576 1774.275 590.988 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1174.609 23.663 2142.796 839.986 85.164 1148.953 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 16 4 0.160 25.003 16 4 0.045 88.768 16 8 0.056 142.785 16 8 0.057 140.395 16 16 0.091 175.678 16 16 0.050 319.566 16 32 0.059 543.392 16 32 0.057 561.580 16 64 0.071 900.790 16 64 0.081 791.845 16 128 0.102 1257.309 16 128 0.121 1058.917 16 256 0.161 1588.375 16 256 0.202 1267.700 16 512 0.283 1809.169 16 512 0.366 1399.012 16 1024 0.541 1892.890 16 1024 0.686 1492.863 16 2048 1.001 2046.197 16 2048 1.326 1544.397 16 4096 1.972 2077.121 16 4096 2.638 1552.772 16 8192 3.954 2071.736 16 8192 5.176 1582.742 16 16384 7.815 2096.512 16 16384 10.316 1588.229 16 32768 24.649 1329.390 16 32768 20.591 1591.373 16 65536 60.518 1082.917 16 65536 41.321 1586.020 16 131072 124.713 1050.988 16 131072 111.155 1179.182 16 262144 247.008 1061.278 16 262144 233.678 1121.818 16 524288 513.792 1020.428 16 524288 473.652 1106.905 16 1048576 2497.522 419.847 16 1048576 1703.419 615.571 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1189.042 25.003 2096.512 1083.666 88.768 1591.373 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 17 4 0.160 24.966 17 4 0.113 35.395 17 8 0.068 117.735 17 8 0.067 119.411 17 16 0.070 229.040 17 16 0.050 319.566 17 32 0.074 431.568 17 32 0.061 524.288 17 64 0.088 727.467 17 64 0.092 695.429 17 128 0.119 1075.894 17 128 0.149 858.993 17 256 0.180 1422.175 17 256 0.265 966.464 17 512 0.293 1747.342 17 512 0.509 1005.847 17 1024 0.539 1900.428 17 1024 0.971 1054.756 17 2048 1.029 1990.254 17 2048 1.902 1076.703 17 4096 2.014 2033.843 17 4096 3.801 1077.648 17 8192 3.996 2050.104 17 8192 7.499 1092.415 17 16384 7.935 2064.764 17 16384 14.959 1095.271 17 32768 24.465 1339.378 17 32768 29.866 1097.168 17 65536 58.744 1115.621 17 65536 62.886 1042.140 17 131072 120.328 1089.290 17 131072 141.761 924.600 17 262144 242.131 1082.654 17 262144 290.811 901.424 17 524288 500.779 1046.945 17 524288 589.424 889.492 17 1048576 2516.779 416.634 17 1048576 1969.377 532.440 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1152.953 24.966 2064.764 805.761 35.395 1097.168 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 18 4 0.052 76.960 18 4 0.158 25.343 18 8 0.067 119.411 18 8 0.068 117.323 18 16 0.073 219.310 18 16 0.051 313.593 18 32 0.079 405.492 18 32 0.062 516.222 18 64 0.092 695.429 18 64 0.091 702.711 18 128 0.120 1067.338 18 128 0.148 864.526 18 256 0.173 1478.983 18 256 0.273 937.766 18 512 0.320 1599.020 18 512 0.510 1003.966 18 1024 0.550 1861.711 18 1024 0.975 1050.114 18 2048 1.050 1950.485 18 2048 1.906 1074.548 18 4096 2.055 1993.256 18 4096 3.808 1075.624 18 8192 4.076 2009.812 18 8192 7.514 1090.232 18 16384 8.098 2023.244 18 16384 14.981 1093.650 18 32768 24.990 1311.240 18 32768 29.958 1093.806 18 65536 58.563 1119.068 18 65536 62.994 1040.353 18 131072 120.012 1092.157 18 131072 143.638 912.515 18 262144 241.213 1086.775 18 262144 293.908 891.925 18 524288 541.187 968.774 18 524288 599.180 875.009 18 1048576 2557.946 409.929 18 1048576 2069.992 506.560 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1130.968 76.960 2023.244 799.252 25.343 1093.806 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 19 4 0.053 75.573 19 4 0.159 25.153 19 8 0.068 117.735 19 8 0.067 119.411 19 16 0.072 222.215 19 16 0.050 319.566 19 32 0.078 410.452 19 32 0.061 524.288 19 64 0.091 702.711 19 64 0.093 688.296 19 128 0.116 1102.404 19 128 0.157 815.913 19 256 0.184 1392.661 19 256 0.279 916.944 19 512 0.306 1673.799 19 512 0.526 973.474 19 1024 0.561 1825.315 19 1024 1.009 1014.879 19 2048 1.071 1912.274 19 2048 1.975 1036.931 19 4096 2.096 1954.034 19 4096 3.946 1038.059 19 8192 4.162 1968.363 19 8192 7.786 1052.140 19 16384 9.076 1805.224 19 16384 15.523 1055.469 19 32768 25.245 1298.002 19 32768 31.018 1056.418 19 65536 58.793 1114.694 19 65536 66.425 986.615 19 131072 121.009 1083.158 19 131072 149.442 877.076 19 262144 242.289 1081.948 19 262144 302.824 865.665 19 524288 505.740 1036.675 19 524288 621.182 844.016 19 1048576 2622.148 399.892 19 1048576 2167.752 483.716 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1114.586 75.573 1968.363 773.370 25.153 1056.418 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 20 4 0.161 24.818 20 4 0.048 83.469 20 8 0.068 117.735 20 8 0.067 119.411 20 16 0.073 218.596 20 16 0.050 321.095 20 32 0.078 409.200 20 32 0.060 534.732 20 64 0.092 697.235 20 64 0.091 702.711 20 128 0.117 1093.423 20 128 0.157 815.913 20 256 0.182 1405.421 20 256 0.274 934.501 20 512 0.312 1640.553 20 512 0.510 1003.966 20 1024 0.572 1790.316 20 1024 0.979 1046.022 20 2048 1.104 1854.877 20 2048 1.914 1069.997 20 4096 2.161 1895.396 20 4096 3.794 1079.612 20 8192 4.248 1928.481 20 8192 7.556 1084.177 20 16384 10.548 1553.298 20 16384 15.050 1088.643 20 32768 25.967 1261.915 20 32768 30.053 1090.344 20 65536 59.275 1105.628 20 65536 65.835 995.458 20 131072 120.925 1083.910 20 131072 147.954 885.897 20 262144 242.966 1078.933 20 262144 301.246 870.199 20 524288 505.601 1036.960 20 524288 614.269 853.515 20 1048576 2658.702 394.394 20 1048576 2235.496 469.057 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1083.742 24.818 1928.481 792.038 83.469 1090.344 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 21 4 0.158 25.305 21 4 0.112 35.696 21 8 0.068 117.735 21 8 0.067 119.411 21 16 0.072 222.215 21 16 0.052 306.433 21 32 0.077 415.535 21 32 0.061 524.288 21 64 0.090 712.030 21 64 0.093 688.296 21 128 0.123 1040.448 21 128 0.189 677.012 21 256 0.192 1333.841 21 256 0.283 904.585 21 512 0.315 1625.650 21 512 0.546 937.766 21 1024 0.581 1762.399 21 1024 1.044 980.810 21 2048 1.111 1843.334 21 2048 2.046 1000.925 21 4096 2.214 1850.083 21 4096 4.054 1010.343 21 8192 4.320 1896.337 21 8192 8.093 1012.218 21 16384 9.938 1648.621 21 16384 16.122 1016.260 21 32768 26.332 1244.411 21 32768 32.172 1018.527 21 65536 59.431 1102.723 21 65536 70.991 923.159 21 131072 120.843 1084.648 21 131072 158.924 824.747 21 262144 243.392 1077.044 21 262144 314.834 832.642 21 524288 519.904 1008.433 21 524288 643.574 814.651 21 1048576 2708.135 387.195 21 1048576 2344.270 447.293 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1073.578 25.305 1896.337 740.793 35.696 1018.527 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 22 4 0.052 76.960 22 4 0.160 25.003 22 8 0.070 114.131 22 8 0.066 121.135 22 16 0.072 222.215 22 16 0.052 307.839 22 32 0.078 410.452 22 32 0.063 508.400 22 64 0.086 745.654 22 64 0.098 653.128 22 128 0.127 1009.156 22 128 0.161 794.188 22 256 0.184 1390.857 22 256 0.291 879.395 22 512 0.321 1594.271 22 512 0.546 937.766 22 1024 0.590 1735.340 22 1024 1.049 976.129 22 2048 1.131 1810.694 22 2048 2.075 987.008 22 4096 2.233 1834.280 22 4096 4.062 1008.386 22 8192 4.413 1856.280 22 8192 8.089 1012.755 22 16384 10.854 1509.489 22 16384 16.141 1015.044 22 32768 26.617 1231.091 22 32768 32.263 1015.651 22 65536 60.009 1092.103 22 65536 72.326 906.120 22 131072 122.453 1070.386 22 131072 157.012 834.790 22 262144 245.695 1066.949 22 262144 318.191 823.857 22 524288 525.852 997.026 22 524288 651.781 804.393 22 1048576 2770.693 378.453 22 1048576 2433.776 430.843 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1060.305 76.960 1856.280 739.044 25.003 1015.651 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 23 4 0.160 25.003 23 4 0.048 83.469 23 8 0.065 123.362 23 8 0.066 121.574 23 16 0.072 222.215 23 16 0.052 307.839 23 32 0.078 410.452 23 32 0.063 508.400 23 64 0.087 735.440 23 64 0.098 653.128 23 128 0.126 1014.879 23 128 0.165 775.825 23 256 0.197 1299.930 23 256 0.294 870.131 23 512 0.326 1570.946 23 512 0.564 907.643 23 1024 0.601 1703.676 23 1024 1.082 946.445 23 2048 1.150 1780.666 23 2048 2.119 966.464 23 4096 2.284 1793.306 23 4096 4.214 971.987 23 8192 4.482 1827.743 23 8192 8.359 980.027 23 16384 8.912 1838.402 23 16384 16.694 981.426 23 32768 27.950 1172.377 23 32768 33.324 983.315 23 65536 62.427 1049.805 23 65536 75.366 869.570 23 131072 128.081 1023.354 23 131072 162.336 807.411 23 262144 268.695 975.619 23 262144 328.073 799.042 23 524288 559.058 937.806 23 524288 678.507 772.708 23 1048576 2855.298 367.239 23 1048576 2536.718 413.359 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1045.906 25.003 1838.402 722.093 83.469 983.315 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 24 4 0.150 26.673 24 4 0.111 36.003 24 8 0.067 119.411 24 8 0.061 131.072 24 16 0.073 219.310 24 16 0.068 235.470 24 32 0.078 410.452 24 32 0.062 516.222 24 64 0.083 771.366 24 64 0.096 666.093 24 128 0.118 1084.588 24 128 0.155 825.955 24 256 0.187 1369.569 24 256 0.270 947.698 24 512 0.332 1541.625 24 512 0.531 964.294 24 1024 0.613 1670.543 24 1024 0.997 1027.013 24 2048 1.174 1744.503 24 2048 1.899 1078.460 24 4096 2.303 1778.454 24 4096 3.766 1087.678 24 8192 4.580 1788.638 24 8192 7.487 1094.189 24 16384 9.062 1807.979 24 16384 14.915 1098.492 24 32768 28.158 1163.721 24 32768 29.886 1096.433 24 65536 63.001 1040.239 24 65536 70.591 928.391 24 131072 128.029 1023.767 24 131072 153.670 852.944 24 262144 258.149 1015.475 24 262144 313.885 835.159 24 524288 555.616 943.616 24 524288 647.322 809.934 24 1048576 2904.636 361.001 24 1048576 2626.304 399.259 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1046.365 26.673 1807.979 770.040 36.003 1098.492 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 25 4 0.052 76.960 25 4 0.158 25.305 25 8 0.067 119.411 25 8 0.063 126.620 25 16 0.072 222.215 25 16 0.049 325.771 25 32 0.077 415.535 25 32 0.061 524.288 25 64 0.094 681.308 25 64 0.102 627.186 25 128 0.129 992.368 25 128 0.167 765.864 25 256 0.200 1279.788 25 256 0.327 783.181 25 512 0.336 1524.119 25 512 0.590 868.021 25 1024 0.620 1651.275 25 1024 1.113 920.087 25 2048 1.190 1721.085 25 2048 2.195 932.979 25 4096 2.341 1749.656 25 4096 4.329 946.184 25 8192 4.662 1757.172 25 8192 8.626 949.689 25 16384 10.328 1586.395 25 16384 17.502 936.118 25 32768 30.575 1071.724 25 32768 35.005 936.092 25 65536 65.199 1005.167 25 65536 79.658 822.719 25 131072 132.338 990.433 25 131072 169.171 774.790 25 262144 267.702 979.238 25 262144 341.207 768.284 25 524288 580.693 902.866 25 524288 717.579 730.635 25 1048576 2997.274 349.843 25 1048576 2722.603 385.137 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1004.029 76.960 1757.172 692.050 25.305 949.689 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 26 4 0.161 24.818 26 4 0.048 83.056 26 8 0.066 121.135 26 8 0.062 129.056 26 16 0.072 222.215 26 16 0.050 319.566 26 32 0.107 298.926 26 32 0.060 532.610 26 64 0.095 672.771 26 64 0.102 628.654 26 128 0.129 992.368 26 128 0.173 740.512 26 256 0.193 1325.607 26 256 0.307 833.650 26 512 0.341 1501.737 26 512 0.577 887.390 26 1024 0.630 1625.035 26 1024 1.113 920.087 26 2048 1.211 1691.265 26 2048 2.199 931.259 26 4096 2.381 1720.395 26 4096 4.336 944.624 26 8192 4.746 1726.013 26 8192 8.633 948.928 26 16384 9.788 1673.921 26 16384 17.237 950.503 26 32768 29.979 1093.032 26 32768 34.434 951.615 26 65536 66.112 991.287 26 65536 80.661 812.486 26 131072 133.671 980.556 26 131072 170.913 766.893 26 262144 268.186 977.471 26 262144 344.810 760.256 26 524288 606.482 864.474 26 524288 775.584 675.991 26 1048576 3065.632 342.042 26 1048576 2819.287 371.929 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 991.846 24.818 1726.013 694.161 83.056 951.615 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 27 4 0.156 25.653 27 4 0.111 36.003 27 8 0.067 119.411 27 8 0.061 131.072 27 16 0.071 225.198 27 16 0.049 327.360 27 32 0.077 416.825 27 32 0.059 543.392 27 64 0.094 679.583 27 64 0.102 627.186 27 128 0.131 977.907 27 128 0.167 765.864 27 256 0.205 1248.537 27 256 0.313 817.777 27 512 0.345 1484.094 27 512 0.636 805.206 27 1024 0.640 1600.211 27 1024 1.175 871.367 27 2048 1.230 1665.039 27 2048 2.283 897.121 27 4096 2.444 1675.921 27 4096 4.508 908.603 27 8192 4.799 1707.062 27 8192 8.964 913.896 27 16384 11.810 1387.291 27 16384 17.827 919.054 27 32768 30.462 1075.700 27 32768 35.645 919.287 27 65536 67.398 972.372 27 65536 83.600 783.923 27 131072 137.085 956.137 27 131072 176.296 743.477 27 262144 274.757 954.093 27 262144 354.242 740.014 27 524288 634.298 826.564 27 524288 760.888 689.047 27 1048576 3160.245 331.802 27 1048576 2911.193 360.188 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 964.705 25.653 1707.062 673.676 36.003 919.287 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 28 4 0.052 76.960 28 4 0.158 25.343 28 8 0.067 119.411 28 8 0.063 127.100 28 16 0.076 210.373 28 16 0.052 307.839 28 32 0.082 390.168 28 32 0.063 508.400 28 64 0.100 640.657 28 64 0.102 627.186 28 128 0.149 858.993 28 128 0.176 727.467 28 256 0.203 1260.260 28 256 0.310 825.955 28 512 0.355 1442.232 28 512 0.579 884.102 28 1024 0.655 1563.512 28 1024 1.124 911.109 28 2048 1.256 1630.587 28 2048 2.185 937.254 28 4096 2.462 1663.749 28 4096 4.345 942.706 28 8192 4.891 1674.941 28 8192 8.636 948.588 28 16384 9.716 1686.285 28 16384 17.239 950.398 28 32768 30.990 1057.369 28 32768 34.492 950.017 28 65536 67.858 965.782 28 65536 82.738 792.091 28 131072 137.321 954.494 28 131072 174.770 749.968 28 262144 276.268 948.876 28 262144 351.849 745.047 28 524288 648.892 807.974 28 524288 768.083 682.593 28 1048576 3175.883 330.168 28 1048576 2964.382 353.725 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 962.252 76.960 1686.285 684.047 25.343 950.398 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 29 4 0.156 25.614 29 4 0.140 28.533 29 8 0.067 119.411 29 8 0.093 86.037 29 16 0.071 225.198 29 16 0.049 327.360 29 32 0.078 409.200 29 32 0.061 526.344 29 64 0.095 672.771 29 64 0.103 621.378 29 128 0.135 948.535 29 128 0.179 714.875 29 256 0.209 1224.335 29 256 0.318 804.904 29 512 0.355 1442.232 29 512 0.613 835.272 29 1024 0.660 1551.650 29 1024 1.184 864.875 29 2048 1.270 1612.528 29 2048 2.342 874.472 29 4096 2.524 1622.886 29 4096 4.616 887.344 29 8192 4.971 1647.949 29 8192 9.221 888.422 29 16384 11.251 1456.230 29 16384 18.385 891.164 29 32768 31.332 1045.831 29 32768 37.436 875.307 29 65536 68.743 953.345 29 65536 87.445 749.454 29 131072 138.869 943.853 29 131072 182.831 716.902 29 262144 278.995 939.601 29 262144 377.938 693.616 29 524288 701.116 747.791 29 524288 841.802 622.816 29 1048576 3225.585 325.081 29 1048576 3076.254 340.861 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 942.844 25.614 1647.949 649.997 28.533 891.164 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 30 4 0.052 76.960 30 4 0.152 26.297 30 8 0.067 119.411 30 8 0.067 119.411 30 16 0.076 210.373 30 16 0.051 313.593 30 32 0.082 390.168 30 32 0.063 508.400 30 64 0.099 645.278 30 64 0.101 633.102 30 128 0.140 914.601 30 128 0.179 714.875 30 256 0.208 1231.355 30 256 0.329 778.074 30 512 0.364 1406.342 30 512 0.616 831.070 30 1024 0.675 1517.120 30 1024 1.186 863.484 30 2048 1.295 1581.358 30 2048 2.343 874.116 30 4096 2.565 1596.939 30 4096 4.627 885.241 30 8192 5.053 1621.201 30 8192 9.221 888.399 30 16384 12.286 1333.530 30 16384 18.384 891.211 30 32768 31.910 1026.890 30 32768 36.781 890.893 30 65536 69.166 947.518 30 65536 88.532 740.252 30 131072 140.235 934.660 30 131072 184.572 710.140 30 262144 281.612 930.870 30 262144 375.418 698.272 30 524288 765.265 685.106 30 524288 871.592 601.529 30 1048576 3229.880 324.649 30 1048576 3144.712 333.441 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 920.754 76.960 1621.201 647.463 26.297 891.211 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 31 4 0.161 24.855 31 4 0.049 81.443 31 8 0.065 123.362 31 8 0.066 121.574 31 16 0.071 225.956 31 16 0.052 307.839 31 32 0.077 415.535 31 32 0.060 532.610 31 64 0.096 667.750 31 64 0.099 646.832 31 128 0.136 941.879 31 128 0.176 726.483 31 256 0.216 1185.146 31 256 0.327 783.181 31 512 0.365 1402.667 31 512 0.632 810.066 31 1024 0.680 1505.949 31 1024 1.222 837.879 31 2048 1.310 1563.227 31 2048 2.439 839.681 31 4096 2.579 1588.229 31 4096 4.763 859.939 31 8192 5.127 1597.830 31 8192 9.514 861.038 31 16384 10.221 1602.974 31 16384 18.952 864.494 31 32768 32.392 1011.607 31 32768 39.859 822.097 31 65536 69.862 938.076 31 65536 91.301 717.802 31 131072 141.193 928.317 31 131072 189.713 690.896 31 262144 284.986 919.849 31 262144 386.583 678.105 31 524288 737.819 710.591 31 524288 931.986 562.549 31 1048576 3203.008 327.372 31 1048576 3196.590 328.030 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 930.588 24.855 1602.974 635.397 81.443 864.494 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 32 4 0.036 111.107 32 4 0.034 117.323 32 8 0.036 222.215 32 8 0.039 204.600 32 16 0.047 340.654 32 16 0.046 347.714 32 32 0.064 498.951 32 32 0.060 534.732 32 64 0.086 745.654 32 64 0.079 810.983 32 128 0.129 992.368 32 128 0.131 976.129 32 256 0.218 1174.772 32 256 0.181 1414.680 32 512 0.392 1306.255 32 512 0.317 1614.649 32 1024 0.729 1404.502 32 1024 0.586 1747.342 32 2048 1.390 1473.402 32 2048 1.131 1810.694 32 4096 2.774 1476.568 32 4096 2.231 1836.045 32 8192 5.457 1501.212 32 8192 4.421 1852.976 32 16384 15.381 1065.220 32 16384 8.777 1866.667 32 32768 37.472 874.466 32 32768 22.212 1475.237 32 65536 81.820 800.978 32 65536 65.319 1003.325 32 131072 165.355 792.670 32 131072 142.446 920.152 32 262144 331.480 790.829 32 262144 287.868 910.640 32 524288 889.302 589.550 32 524288 734.739 713.570 32 1048576 3173.115 330.456 32 1048576 3273.147 320.357 19 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 867.991 111.107 1501.212 1077.780 117.323 1866.667 stats by bits per item pack: unpack: bits avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1 1658.382 18.177 3066.328 1315.663 108.240 1760.678 2 1604.204 23.530 2974.612 1307.941 92.692 1748.070 3 1555.140 24.672 2886.524 1226.040 89.241 1635.623 4 1539.088 24.245 2816.141 1279.217 88.768 1724.589 5 1445.968 24.528 2720.163 1129.979 85.164 1527.464 6 1437.637 24.385 2666.646 1117.549 78.398 1519.426 7 1415.178 23.367 2596.519 1062.550 78.398 1433.074 8 1410.928 24.385 2528.776 1214.024 91.181 1677.394 9 1347.696 23.399 2450.853 993.418 75.573 1350.479 10 1318.918 23.237 2378.660 977.777 78.398 1342.892 11 1291.382 23.269 2344.255 925.011 34.808 1275.269 12 1257.925 69.042 2291.413 949.346 27.236 1327.207 13 1238.209 68.759 2240.682 877.303 24.385 1208.170 14 1209.853 69.042 2192.428 867.682 25.771 1202.009 15 1174.609 23.663 2142.796 839.986 85.164 1148.953 16 1189.042 25.003 2096.512 1083.666 88.768 1591.373 17 1152.953 24.966 2064.764 805.761 35.395 1097.168 18 1130.968 76.960 2023.244 799.252 25.343 1093.806 19 1114.586 75.573 1968.363 773.370 25.153 1056.418 20 1083.742 24.818 1928.481 792.038 83.469 1090.344 21 1073.578 25.305 1896.337 740.793 35.696 1018.527 22 1060.305 76.960 1856.280 739.044 25.003 1015.651 23 1045.906 25.003 1838.402 722.093 83.469 983.315 24 1046.365 26.673 1807.979 770.040 36.003 1098.492 25 1004.029 76.960 1757.172 692.050 25.305 949.689 26 991.846 24.818 1726.013 694.161 83.056 951.615 27 964.705 25.653 1707.062 673.676 36.003 919.287 28 962.252 76.960 1686.285 684.047 25.343 950.398 29 942.844 25.614 1647.949 649.997 28.533 891.164 30 920.754 76.960 1621.201 647.463 26.297 891.211 31 930.588 24.855 1602.974 635.397 81.443 864.494 32 867.991 111.107 1501.212 1077.780 117.323 1866.667 stats by size pack: unpack: size(B) avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4 40.997 18.177 111.107 60.157 24.385 117.323 8 120.295 84.096 222.215 127.978 86.037 204.600 16 223.627 175.678 340.654 315.328 235.470 347.714 32 421.185 298.926 543.392 527.568 500.812 561.580 64 735.792 640.657 900.790 718.507 621.378 841.490 128 1120.306 858.993 1508.064 895.021 677.012 1144.714 256 1518.195 1174.772 2029.758 1039.863 778.074 1414.680 512 1819.272 1306.255 2535.400 1126.618 805.206 1614.649 1024 1985.072 1404.502 2781.715 1189.982 837.879 1747.342 2048 2084.011 1473.402 2934.723 1222.421 839.681 1810.694 4096 2114.713 1476.568 2989.883 1236.781 859.939 1836.045 8192 2144.816 1501.212 3033.972 1248.866 861.038 1852.976 16384 2051.558 1065.220 3066.328 1253.767 864.494 1866.667 32768 1485.971 874.466 2402.527 1241.608 822.097 1757.846 65536 1175.986 800.978 1638.529 1172.078 717.802 1760.390 131072 1124.852 792.670 1477.683 1096.289 690.896 1760.678 262144 1118.686 790.829 1462.375 1053.014 678.105 1760.148 524288 1043.490 589.550 1437.836 1007.207 562.549 1758.631 1048576 463.795 324.649 865.738 723.764 320.357 1734.528 real 3m29.548s user 3m29.502s sys 0m0.000s ================================================ FILE: benchmark/PackedArraySIMDSelfBench-unrolled-iphone5-a6-1.3GHz.txt ================================================ -- PackedArray self bench ------------------------------------------------------ memcpy: bits size (B) time (µs) speed (B/µs) 32 4 0.060 66.576 32 8 0.049 163.680 32 16 0.087 183.860 32 32 0.145 220.390 32 64 0.028 2274.877 32 128 0.037 3463.683 32 256 0.051 5017.485 32 512 0.091 5621.685 32 1024 0.149 6871.948 32 2048 0.265 7731.714 32 4096 0.497 8243.699 32 8192 0.973 8419.441 32 16384 1.904 8604.993 32 32768 4.274 7666.590 32 65536 11.136 5885.028 32 131072 22.126 5923.901 32 262144 44.180 5933.524 32 524288 80.095 6545.823 32 1048576 392.180 2673.710 avg (B/µs) min (B/µs) max (B/µs) 4816.453 66.576 8604.993 loopcpy: bits size (B) time (µs) speed (B/µs) 32 4 0.024 167.772 32 8 0.030 266.305 32 16 0.067 238.822 32 32 0.127 251.816 32 64 0.016 4006.499 32 128 0.022 5835.553 32 256 0.035 7304.366 32 512 0.069 7430.739 32 1024 0.118 8676.702 32 2048 0.217 9439.489 32 4096 0.415 9867.817 32 8192 0.811 10099.864 32 16384 1.601 10233.727 32 32768 3.491 9385.983 32 65536 9.325 7028.148 32 131072 18.659 7024.556 32 262144 37.224 7042.328 32 524288 76.176 6882.573 32 1048576 404.365 2593.142 avg (B/µs) min (B/µs) max (B/µs) 5988.221 167.772 10233.727 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 1 4 0.059 67.650 1 4 0.024 166.111 1 8 0.045 178.481 1 8 0.029 275.036 1 16 0.051 313.593 1 16 0.030 532.610 1 32 0.061 524.288 1 32 0.033 972.592 1 64 0.063 1016.801 1 64 0.038 1688.273 1 128 0.078 1641.807 1 128 0.054 2375.535 1 256 0.110 2329.158 1 256 0.080 3195.660 1 512 0.120 4269.351 1 512 0.135 3794.141 1 1024 0.195 5250.571 1 1024 0.239 4286.395 1 2048 0.371 5520.524 1 2048 0.455 4499.704 1 4096 0.707 5794.222 1 4096 0.911 4496.171 1 8192 1.373 5966.268 1 8192 1.801 4549.151 1 16384 2.791 5869.948 1 16384 3.572 4586.803 1 32768 5.540 5914.915 1 32768 6.952 4713.432 1 65536 11.516 5690.818 1 65536 13.865 4726.724 1 131072 22.938 5714.183 1 131072 27.696 4732.543 1 262144 45.745 5730.563 1 262144 55.363 4735.009 1 524288 91.616 5722.659 1 524288 110.846 4729.876 1 1048576 214.368 4891.474 1 1048576 225.077 4658.745 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 3810.909 67.650 5966.268 3353.395 166.111 4735.009 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 2 4 0.056 71.698 2 4 0.028 142.180 2 8 0.040 200.925 2 8 0.034 234.646 2 16 0.052 307.839 2 16 0.033 482.798 2 32 0.056 571.139 2 32 0.039 823.422 2 64 0.064 1001.625 2 64 0.046 1390.857 2 128 0.079 1621.967 2 128 0.058 2209.345 2 256 0.098 2612.511 2 256 0.084 3050.403 2 512 0.120 4260.880 2 512 0.142 3603.160 2 1024 0.215 4761.605 2 1024 0.258 3965.805 2 2048 0.392 5225.021 2 2048 0.502 4080.729 2 4096 0.745 5499.318 2 4096 0.962 4257.712 2 8192 1.448 5657.787 2 8192 1.911 4286.929 2 16384 2.856 5736.662 2 16384 3.793 4319.535 2 32768 5.800 5649.647 2 32768 7.546 4342.463 2 65536 12.329 5315.656 2 65536 15.079 4346.171 2 131072 24.594 5329.415 2 131072 30.079 4357.608 2 262144 49.092 5339.846 2 262144 60.113 4360.857 2 524288 98.348 5330.940 2 524288 120.723 4342.900 2 1048576 244.007 4297.317 2 1048576 249.253 4206.874 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 3620.621 71.698 5736.662 3094.968 142.180 4360.857 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 3 4 0.058 69.042 3 4 0.029 137.518 3 8 0.040 199.729 3 8 0.036 222.215 3 16 0.051 313.593 3 16 0.033 486.296 3 32 0.055 581.029 3 32 0.039 818.401 3 64 0.084 762.601 3 64 0.046 1390.857 3 128 0.078 1636.802 3 128 0.059 2164.802 3 256 0.110 2324.117 3 256 0.096 2671.000 3 512 0.128 3999.038 3 512 0.157 3263.653 3 1024 0.221 4633.190 3 1024 0.289 3543.702 3 2048 0.409 5008.708 3 2048 0.554 3696.185 3 4096 0.786 5210.758 3 4096 1.086 3771.651 3 8192 1.548 5291.812 3 8192 2.158 3796.237 3 16384 3.060 5354.486 3 16384 4.290 3819.022 3 32768 6.186 5297.115 3 32768 8.529 3841.974 3 65536 13.141 4987.081 3 65536 17.035 3847.137 3 131072 25.944 5052.113 3 131072 34.027 3852.016 3 262144 51.845 5056.295 3 262144 68.091 3849.898 3 524288 104.004 5041.041 3 524288 138.597 3782.823 3 1048576 264.636 3962.336 3 1048576 283.471 3699.061 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 3409.520 69.042 5354.486 2771.287 137.518 3852.016 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 4 4 0.057 70.198 4 4 0.029 137.518 4 8 0.038 211.034 4 8 0.035 228.261 4 16 0.050 319.566 4 16 0.033 482.798 4 32 0.053 604.584 4 32 0.039 823.422 4 64 0.060 1065.220 4 64 0.047 1355.735 4 128 0.067 1910.573 4 128 0.060 2130.440 4 256 0.099 2581.110 4 256 0.116 2204.809 4 512 0.135 3794.141 4 512 0.161 3181.457 4 1024 0.232 4414.149 4 1024 0.296 3460.892 4 2048 0.428 4785.479 4 2048 0.567 3612.252 4 4096 0.820 4995.600 4 4096 1.121 3653.737 4 8192 1.612 5082.050 4 8192 2.207 3711.757 4 16384 3.188 5139.057 4 16384 4.381 3739.835 4 32768 6.417 5106.407 4 32768 8.731 3753.112 4 65536 13.680 4790.650 4 65536 17.426 3760.814 4 131072 27.222 4814.944 4 131072 34.818 3764.497 4 262144 54.409 4818.024 4 262144 69.930 3748.659 4 524288 108.305 4840.849 4 524288 142.623 3676.042 4 1048576 282.163 3716.208 4 1048576 292.985 3578.941 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 3318.939 70.198 5139.057 2684.473 137.518 3764.497 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 5 4 0.060 66.841 5 4 0.033 120.699 5 8 0.044 182.361 5 8 0.056 142.785 5 16 0.053 302.292 5 16 0.033 486.296 5 32 0.057 561.580 5 32 0.041 780.336 5 64 0.065 983.280 5 64 0.047 1362.617 5 128 0.081 1583.690 5 128 0.070 1826.092 5 256 0.112 2284.557 5 256 0.109 2349.544 5 512 0.145 3532.045 5 512 0.184 2781.715 5 1024 0.235 4360.373 5 1024 0.340 3011.899 5 2048 0.437 4686.271 5 2048 0.655 3127.024 5 4096 0.842 4864.063 5 4096 1.285 3187.360 5 8192 1.661 4931.784 5 8192 2.554 3207.294 5 16384 3.284 4989.072 5 16384 5.075 3228.388 5 32768 6.657 4922.246 5 32768 10.114 3239.880 5 65536 13.945 4699.651 5 65536 20.193 3245.503 5 131072 27.839 4708.224 5 131072 40.349 3248.457 5 262144 55.498 4723.495 5 262144 82.289 3185.651 5 524288 111.565 4699.390 5 524288 164.920 3179.043 5 1048576 288.991 3628.404 5 1048576 343.234 3054.988 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 3195.243 66.841 4989.072 2356.083 120.699 3248.457 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 6 4 0.059 67.924 6 4 0.031 129.056 6 8 0.045 177.537 6 8 0.042 190.650 6 16 0.054 295.634 6 16 0.034 472.598 6 32 0.057 561.580 6 32 0.040 798.915 6 64 0.065 986.895 6 64 0.047 1362.617 6 128 0.080 1602.600 6 128 0.072 1777.718 6 256 0.104 2462.711 6 256 0.109 2349.544 6 512 0.144 3555.437 6 512 0.194 2638.186 6 1024 0.250 4094.344 6 1024 0.360 2844.349 6 2048 0.460 4450.743 6 2048 0.692 2958.985 6 4096 0.888 4612.045 6 4096 1.360 3011.371 6 8192 1.750 4680.526 6 8192 2.713 3019.575 6 16384 3.453 4744.837 6 16384 5.375 3048.238 6 32768 7.094 4619.020 6 32768 10.709 3059.843 6 65536 14.966 4378.989 6 65536 21.379 3065.439 6 131072 29.815 4396.147 6 131072 42.723 3067.954 6 262144 59.527 4403.771 6 262144 87.294 3003.006 6 524288 119.943 4371.146 6 524288 177.128 2959.937 6 1048576 293.458 3573.172 6 1048576 362.219 2894.869 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 3054.477 67.924 4744.837 2244.887 129.056 3067.954 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 7 4 0.061 65.536 7 4 0.034 117.323 7 8 0.045 177.537 7 8 0.046 173.857 7 16 0.053 302.292 7 16 0.035 456.523 7 32 0.057 561.580 7 32 0.050 639.132 7 64 0.064 1001.625 7 64 0.047 1362.617 7 128 0.080 1602.600 7 128 0.071 1801.580 7 256 0.115 2227.680 7 256 0.119 2151.787 7 512 0.150 3414.123 7 512 0.208 2462.711 7 1024 0.266 3848.537 7 1024 0.389 2631.720 7 2048 0.495 4137.733 7 2048 0.753 2720.055 7 4096 0.962 4257.712 7 4096 1.494 2741.760 7 8192 1.882 4352.640 7 8192 2.953 2774.079 7 16384 3.722 4401.991 7 16384 5.864 2794.043 7 32768 7.632 4293.491 7 32768 11.696 2801.675 7 65536 15.383 4260.286 7 65536 23.355 2806.079 7 131072 30.652 4276.126 7 131072 46.678 2808.000 7 262144 61.198 4283.539 7 262144 95.156 2754.888 7 524288 123.461 4246.588 7 524288 190.816 2747.608 7 1048576 322.216 3254.264 7 1048576 395.066 2654.179 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2892.941 65.536 4401.991 2073.664 117.323 2808.000 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 8 4 0.057 70.198 8 4 0.028 142.180 8 8 0.038 211.034 8 8 0.034 234.646 8 16 0.050 319.566 8 16 0.032 500.812 8 32 0.054 593.884 8 32 0.038 844.137 8 64 0.053 1209.169 8 64 0.045 1427.848 8 128 0.068 1883.758 8 128 0.067 1910.573 8 256 0.101 2538.397 8 256 0.110 2324.117 8 512 0.151 3387.198 8 512 0.186 2753.184 8 1024 0.267 3834.792 8 1024 0.327 3130.443 8 2048 0.505 4055.682 8 2048 0.630 3251.300 8 4096 0.971 4217.989 8 4096 1.234 3319.140 8 8192 1.919 4269.351 8 8192 2.455 3336.869 8 16384 3.816 4293.626 8 16384 4.875 3360.859 8 32768 7.740 4233.580 8 32768 9.719 3371.577 8 65536 16.316 4016.686 8 65536 19.403 3377.625 8 131072 32.513 4031.355 8 131072 38.990 3361.681 8 262144 64.964 4035.216 8 262144 79.894 3281.145 8 524288 129.855 4037.491 8 524288 160.076 3275.241 8 1048576 333.752 3141.780 8 1048576 327.388 3202.854 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2862.145 70.198 4293.626 2442.433 142.180 3377.625 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 9 4 0.061 65.793 9 4 0.031 129.056 9 8 0.045 177.537 9 8 0.043 186.414 9 16 0.055 290.515 9 16 0.034 472.598 9 32 0.057 561.580 9 32 0.041 780.336 9 64 0.064 997.901 9 64 0.053 1209.169 9 128 0.080 1602.600 9 128 0.077 1662.139 9 256 0.117 2191.310 9 256 0.121 2113.665 9 512 0.149 3435.974 9 512 0.198 2584.216 9 1024 0.265 3862.381 9 1024 0.362 2829.359 9 2048 0.496 4129.776 9 2048 0.693 2954.914 9 4096 0.959 4270.412 9 4096 1.353 3027.290 9 8192 1.894 4325.244 9 8192 2.697 3037.459 9 16384 3.761 4356.227 9 16384 5.333 3072.223 9 32768 7.534 4349.334 9 32768 10.616 3086.643 9 65536 15.909 4119.441 9 65536 21.228 3087.232 9 131072 31.703 4134.373 9 131072 43.582 3007.483 9 262144 63.297 4141.490 9 262144 87.065 3010.901 9 524288 127.661 4106.877 9 524288 174.853 2998.449 9 1048576 333.866 3140.710 9 1048576 371.428 2823.093 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2855.762 65.793 4356.227 2214.349 129.056 3087.232 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 10 4 0.060 66.576 10 4 0.031 129.056 10 8 0.045 177.537 10 8 0.043 186.414 10 16 0.052 307.839 10 16 0.034 469.293 10 32 0.057 561.580 10 32 0.040 798.915 10 64 0.064 1001.625 10 64 0.055 1167.111 10 128 0.080 1597.830 10 128 0.074 1726.273 10 256 0.109 2349.544 10 256 0.115 2227.680 10 512 0.155 3303.821 10 512 0.198 2587.330 10 1024 0.274 3738.005 10 1024 0.363 2821.923 10 2048 0.513 3991.605 10 2048 0.691 2964.091 10 4096 0.991 4132.757 10 4096 1.349 3036.386 10 8192 1.960 4179.508 10 8192 2.681 3055.557 10 16384 3.890 4211.785 10 16384 5.309 3086.158 10 32768 7.940 4126.924 10 32768 10.568 3100.710 10 65536 16.396 3997.061 10 65536 21.092 3107.159 10 131072 32.686 4010.035 10 131072 44.166 2967.723 10 262144 65.293 4014.882 10 262144 88.264 2969.999 10 524288 131.632 3982.980 10 524288 177.284 2957.334 10 1048576 341.801 3067.797 10 1048576 368.006 2849.345 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2779.984 66.576 4211.785 2221.498 129.056 3107.159 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 11 4 0.058 68.759 11 4 0.038 105.517 11 8 0.047 170.327 11 8 0.044 181.375 11 16 0.057 280.790 11 16 0.034 469.293 11 32 0.060 532.610 11 32 0.040 798.915 11 64 0.068 938.586 11 64 0.057 1123.161 11 128 0.084 1525.201 11 128 0.075 1704.352 11 256 0.124 2064.888 11 256 0.125 2049.126 11 512 0.156 3278.601 11 512 0.202 2535.400 11 1024 0.278 3683.505 11 1024 0.381 2687.714 11 2048 0.522 3922.345 11 2048 0.739 2770.947 11 4096 1.020 4015.865 11 4096 1.460 2805.335 11 8192 1.998 4100.207 11 8192 2.892 2832.625 11 16384 3.972 4124.819 11 16384 5.757 2845.998 11 32768 8.094 4048.395 11 32768 11.489 2852.141 11 65536 16.838 3892.187 11 65536 22.951 2855.489 11 131072 33.571 3904.322 11 131072 46.550 2815.723 11 262144 67.027 3911.016 11 262144 92.945 2820.418 11 524288 134.986 3884.020 11 524288 187.098 2802.210 11 1048576 354.431 2958.478 11 1048576 394.199 2660.016 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2700.259 68.759 4124.819 2090.303 105.517 2855.489 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 12 4 0.035 114.131 12 4 0.052 76.960 12 8 0.047 170.327 12 8 0.041 195.084 12 16 0.053 302.292 12 16 0.035 456.523 12 32 0.056 573.580 12 32 0.040 798.915 12 64 0.063 1016.801 12 64 0.057 1123.161 12 128 0.074 1731.842 12 128 0.075 1709.780 12 256 0.112 2284.557 12 256 0.123 2080.895 12 512 0.166 3085.465 12 512 0.222 2306.642 12 1024 0.297 3449.773 12 1024 0.429 2387.419 12 2048 0.557 3675.625 12 2048 0.814 2515.354 12 4096 1.079 3796.656 12 4096 1.604 2553.488 12 8192 2.135 3837.362 12 8192 3.188 2569.721 12 16384 4.241 3863.249 12 16384 6.353 2578.979 12 32768 8.541 3836.505 12 32768 12.718 2576.513 12 65536 17.099 3832.760 12 65536 25.324 2587.890 12 131072 34.120 3841.491 12 131072 51.762 2532.200 12 262144 68.098 3849.507 12 262144 103.457 2533.846 12 524288 138.656 3781.217 12 524288 207.711 2524.123 12 1048576 362.145 2895.459 12 1048576 422.086 2484.271 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2628.347 114.131 3863.249 1925.882 76.960 2587.890 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 13 4 0.033 120.699 13 4 0.059 67.924 13 8 0.045 177.537 13 8 0.043 186.414 13 16 0.055 291.778 13 16 0.034 469.293 13 32 0.059 541.201 13 32 0.039 823.422 13 64 0.066 969.081 13 64 0.057 1123.161 13 128 0.085 1508.064 13 128 0.082 1560.671 13 256 0.120 2134.676 13 256 0.129 1984.735 13 512 0.163 3139.596 13 512 0.221 2316.595 13 1024 0.284 3606.186 13 1024 0.417 2455.670 13 2048 0.536 3821.145 13 2048 0.815 2513.146 13 4096 1.041 3934.021 13 4096 1.593 2571.067 13 8192 1.995 4106.578 13 8192 3.173 2581.692 13 16384 3.968 4129.032 13 16384 6.368 2572.800 13 32768 8.407 3897.761 13 32768 12.585 2603.701 13 65536 17.912 3658.794 13 65536 25.138 2607.059 13 131072 35.743 3667.068 13 131072 51.771 2531.757 13 262144 71.391 3671.954 13 262144 103.452 2533.968 13 524288 143.548 3652.353 13 524288 209.246 2505.607 13 1048576 368.611 2844.669 13 1048576 436.187 2403.960 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2624.852 120.699 4129.032 1916.455 67.924 2607.059 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 14 4 0.035 114.131 14 4 0.057 70.198 14 8 0.045 178.481 14 8 0.043 186.414 14 16 0.053 300.937 14 16 0.033 482.798 14 32 0.057 559.241 14 32 0.040 798.915 14 64 0.065 983.280 14 64 0.057 1123.161 14 128 0.083 1542.733 14 128 0.085 1503.840 14 256 0.113 2265.278 14 256 0.130 1970.168 14 512 0.169 3028.891 14 512 0.223 2296.774 14 1024 0.298 3435.974 14 1024 0.417 2455.670 14 2048 0.554 3696.185 14 2048 0.809 2531.664 14 4096 1.067 3839.077 14 4096 1.593 2571.067 14 8192 2.114 3875.013 14 8192 3.174 2580.916 14 16384 4.168 3930.870 14 16384 6.314 2594.950 14 32768 8.600 3810.234 14 32768 12.586 2603.504 14 65536 18.166 3607.653 14 65536 25.135 2607.381 14 131072 36.152 3625.568 14 131072 52.082 2516.655 14 262144 72.237 3628.943 14 262144 104.079 2518.702 14 524288 145.116 3612.887 14 524288 209.198 2506.181 14 1048576 379.142 2765.655 14 1048576 441.809 2373.370 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2568.475 114.131 3930.870 1910.122 70.198 2607.381 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 15 4 0.060 66.576 15 4 0.031 129.056 15 8 0.044 182.361 15 8 0.043 186.414 15 16 0.053 302.292 15 16 0.034 469.293 15 32 0.056 571.139 15 32 0.041 780.336 15 64 0.064 1001.625 15 64 0.057 1123.161 15 128 0.084 1525.201 15 128 0.085 1508.064 15 256 0.125 2049.126 15 256 0.139 1841.753 15 512 0.168 3046.076 15 512 0.237 2160.446 15 1024 0.302 3389.872 15 1024 0.449 2279.707 15 2048 0.582 3519.023 15 2048 0.862 2376.192 15 4096 1.126 3637.491 15 4096 1.686 2429.280 15 8192 2.207 3711.757 15 8192 3.334 2457.075 15 16384 4.386 3735.363 15 16384 6.636 2468.993 15 32768 8.734 3751.780 15 32768 13.232 2476.422 15 65536 18.605 3522.495 15 65536 26.525 2470.724 15 131072 37.178 3525.545 15 131072 54.917 2386.725 15 262144 74.339 3526.336 15 262144 109.726 2389.074 15 524288 150.215 3490.253 15 524288 220.517 2377.538 15 1048576 382.978 2737.954 15 1048576 461.032 2274.410 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2489.067 66.576 3751.780 1820.245 129.056 2476.422 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 16 4 0.058 69.042 16 4 0.027 148.471 16 8 0.039 204.600 16 8 0.033 241.399 16 16 0.051 313.593 16 16 0.033 482.798 16 32 0.044 725.501 16 32 0.038 844.137 16 64 0.053 1209.169 16 64 0.050 1278.264 16 128 0.074 1726.273 16 128 0.074 1731.842 16 256 0.112 2289.428 16 256 0.117 2186.847 16 512 0.170 3011.899 16 512 0.203 2520.521 16 1024 0.307 3337.193 16 1024 0.375 2730.431 16 2048 0.577 3549.560 16 2048 0.721 2840.587 16 4096 1.121 3653.737 16 4096 1.412 2900.535 16 8192 2.249 3642.504 16 8192 2.802 2923.735 16 16384 4.407 3717.782 16 16384 5.573 2939.871 16 32768 8.992 3644.146 16 32768 11.104 2951.044 16 65536 18.762 3492.997 16 65536 22.364 2930.437 16 131072 37.154 3527.807 16 131072 46.198 2837.186 16 262144 74.455 3520.837 16 262144 92.305 2839.971 16 524288 150.900 3474.409 16 524288 185.856 2820.939 16 1048576 399.484 2624.825 16 1048576 400.469 2618.370 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2512.384 69.042 3717.782 2145.652 148.471 2951.044 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 17 4 0.060 66.576 17 4 0.039 102.300 17 8 0.042 190.650 17 8 0.041 195.084 17 16 0.054 296.942 17 16 0.033 482.798 17 32 0.057 559.241 17 32 0.046 695.429 17 64 0.075 852.176 17 64 0.054 1187.768 17 128 0.088 1454.935 17 128 0.081 1583.690 17 256 0.125 2049.126 17 256 0.135 1897.070 17 512 0.174 2941.758 17 512 0.254 2016.417 17 1024 0.313 3271.110 17 1024 0.471 2173.566 17 2048 0.594 3448.388 17 2048 0.905 2262.891 17 4096 1.155 3545.897 17 4096 1.782 2298.310 17 8192 2.308 3549.193 17 8192 3.527 2322.703 17 16384 4.548 3602.594 17 16384 7.007 2338.192 17 32768 9.144 3583.619 17 32768 13.970 2345.575 17 65536 19.387 3380.408 17 65536 28.556 2295.010 17 131072 38.701 3386.781 17 131072 57.549 2277.572 17 262144 77.290 3391.691 17 262144 115.210 2275.357 17 524288 156.652 3346.833 17 524288 230.714 2272.460 17 1048576 392.805 2669.458 17 1048576 488.677 2145.744 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2399.336 66.576 3602.594 1745.681 102.300 2345.575 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 18 4 0.033 121.574 18 4 0.058 69.042 18 8 0.044 181.375 18 8 0.040 199.729 18 16 0.053 302.292 18 16 0.033 486.296 18 32 0.056 571.139 18 32 0.043 745.654 18 64 0.064 1001.625 18 64 0.058 1104.673 18 128 0.087 1470.879 18 128 0.086 1491.308 18 256 0.128 1999.519 18 256 0.147 1743.087 18 512 0.175 2925.727 18 512 0.255 2008.872 18 1024 0.315 3248.841 18 1024 0.474 2160.446 18 2048 0.599 3418.199 18 2048 0.915 2238.128 18 4096 1.157 3540.051 18 4096 1.788 2290.955 18 8192 2.305 3553.965 18 8192 3.555 2304.322 18 16384 4.560 3592.987 18 16384 7.058 2321.369 18 32768 9.351 3504.218 18 32768 14.068 2329.276 18 65536 20.034 3271.227 18 65536 29.339 2233.745 18 131072 39.795 3293.687 18 131072 58.559 2238.283 18 262144 79.459 3299.112 18 262144 117.008 2240.394 18 524288 159.559 3285.856 18 524288 234.363 2237.078 18 1048576 395.823 2649.103 18 1048576 499.752 2098.193 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2380.599 121.574 3592.987 1712.676 69.042 2329.276 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 19 4 0.033 121.574 19 4 0.055 72.629 19 8 0.044 182.361 19 8 0.042 190.650 19 16 0.054 296.942 19 16 0.034 469.293 19 32 0.057 561.580 19 32 0.044 729.444 19 64 0.066 969.081 19 64 0.062 1032.444 19 128 0.088 1454.935 19 128 0.089 1439.332 19 256 0.132 1938.162 19 256 0.159 1609.808 19 512 0.178 2874.811 19 512 0.247 2072.861 19 1024 0.333 3074.422 19 1024 0.466 2198.039 19 2048 0.624 3282.359 19 2048 0.915 2238.711 19 4096 1.208 3390.541 19 4096 1.793 2284.253 19 8192 2.388 3430.485 19 8192 3.553 2305.559 19 16384 4.721 3470.330 19 16384 7.077 2315.112 19 32768 9.484 3455.063 19 32768 14.114 2321.682 19 65536 19.836 3303.900 19 65536 29.482 2222.906 19 131072 39.955 3280.499 19 131072 58.973 2222.583 19 262144 79.296 3305.887 19 262144 117.582 2229.460 19 524288 160.961 3257.238 19 524288 235.681 2224.566 19 1048576 409.963 2557.734 19 1048576 501.696 2090.063 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2326.732 121.574 3470.330 1698.389 72.629 2321.682 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 20 4 0.059 67.924 20 4 0.032 125.203 20 8 0.045 177.537 20 8 0.040 199.729 20 16 0.052 307.839 20 16 0.033 486.296 20 32 0.055 583.555 20 32 0.043 741.534 20 64 0.064 997.901 20 64 0.061 1048.576 20 128 0.078 1641.807 20 128 0.092 1390.857 20 256 0.124 2060.925 20 256 0.158 1619.520 20 512 0.180 2844.349 20 512 0.267 1917.396 20 1024 0.334 3065.644 20 1024 0.501 2044.249 20 2048 0.629 3256.230 20 2048 0.971 2109.512 20 4096 1.212 3379.868 20 4096 1.909 2145.606 20 8192 2.412 3396.574 20 8192 3.789 2161.942 20 16384 4.734 3460.892 20 16384 7.546 2171.231 20 32768 9.536 3436.232 20 32768 15.058 2176.113 20 65536 20.708 3164.791 20 65536 30.393 2156.277 20 131072 41.316 3172.425 20 131072 60.853 2153.912 20 262144 82.544 3175.806 20 262144 121.412 2159.131 20 524288 165.542 3167.102 20 524288 243.442 2153.646 20 1048576 419.733 2498.197 20 1048576 526.044 1993.324 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2308.189 67.924 3460.892 1629.161 125.203 2176.113 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 21 4 0.058 69.042 21 4 0.039 102.300 21 8 0.045 177.537 21 8 0.041 195.084 21 16 0.054 296.942 21 16 0.035 456.523 21 32 0.057 561.580 21 32 0.044 729.444 21 64 0.065 986.895 21 64 0.062 1032.444 21 128 0.086 1487.177 21 128 0.095 1348.922 21 256 0.134 1910.573 21 256 0.164 1562.943 21 512 0.195 2625.286 21 512 0.298 1717.987 21 1024 0.341 3003.474 21 1024 0.560 1828.424 21 2048 0.648 3160.388 21 2048 1.085 1887.483 21 4096 1.263 3243.321 21 4096 2.134 1919.538 21 8192 2.524 3245.772 21 8192 4.238 1933.037 21 16384 4.970 3296.689 21 16384 8.440 1941.228 21 32768 10.011 3273.213 21 32768 16.835 1946.424 21 65536 20.932 3130.906 21 65536 35.070 1868.723 21 131072 41.800 3135.692 21 131072 70.055 1870.987 21 262144 83.538 3138.019 21 262144 140.088 1871.283 21 524288 168.421 3112.960 21 524288 281.319 1863.679 21 1048576 430.504 2435.695 21 1048576 593.931 1765.485 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2225.851 69.042 3296.689 1465.365 102.300 1946.424 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 22 4 0.033 120.699 22 4 0.057 69.905 22 8 0.044 182.361 22 8 0.040 199.729 22 16 0.054 296.942 22 16 0.034 472.598 22 32 0.057 561.580 22 32 0.044 725.501 22 64 0.065 983.280 22 64 0.058 1104.673 22 128 0.091 1405.421 22 128 0.094 1359.167 22 256 0.124 2064.888 22 256 0.160 1600.211 22 512 0.198 2584.216 22 512 0.290 1764.572 22 1024 0.363 2821.923 22 1024 0.550 1861.711 22 2048 0.693 2954.914 22 2048 1.072 1910.148 22 4096 1.362 3007.680 22 4096 2.120 1932.059 22 8192 2.709 3024.092 22 8192 4.207 1947.169 22 16384 5.338 3069.204 22 16384 8.386 1953.701 22 32768 10.698 3063.048 22 32768 16.735 1958.071 22 65536 21.562 3039.407 22 65536 34.948 1875.250 22 131072 43.084 3042.250 22 131072 69.836 1876.851 22 262144 86.076 3045.494 22 262144 139.607 1877.729 22 524288 174.467 3005.083 22 524288 281.389 1863.214 22 1048576 435.400 2408.305 22 1048576 592.346 1770.209 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2141.094 120.699 3069.204 1480.130 69.905 1958.071 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 23 4 0.060 66.576 23 4 0.033 121.574 23 8 0.043 186.414 23 8 0.041 195.084 23 16 0.053 302.292 23 16 0.035 456.523 23 32 0.057 559.241 23 32 0.044 725.501 23 64 0.065 986.895 23 64 0.058 1104.673 23 128 0.091 1405.421 23 128 0.094 1359.167 23 256 0.138 1854.476 23 256 0.168 1523.038 23 512 0.199 2571.837 23 512 0.290 1766.023 23 1024 0.364 2812.683 23 1024 0.549 1864.945 23 2048 0.696 2942.766 23 2048 1.079 1897.909 23 4096 1.372 2985.208 23 4096 2.108 1943.204 23 8192 2.715 3017.453 23 8192 4.201 1949.931 23 16384 5.361 3056.236 23 16384 8.362 1959.327 23 32768 10.777 3040.550 23 32768 16.687 1963.694 23 65536 22.411 2924.264 23 65536 34.547 1897.018 23 131072 44.737 2929.828 23 131072 69.003 1899.515 23 262144 89.443 2930.851 23 262144 137.950 1900.280 23 524288 180.548 2903.867 23 524288 276.297 1897.552 23 1048576 437.021 2399.372 23 1048576 580.262 1807.074 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2098.749 66.576 3056.236 1485.896 121.574 1963.694 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 24 4 0.052 76.960 24 4 0.038 105.517 24 8 0.041 195.084 24 8 0.039 205.855 24 16 0.053 302.292 24 16 0.033 482.798 24 32 0.057 561.580 24 32 0.042 762.601 24 64 0.060 1065.220 24 64 0.056 1147.160 24 128 0.085 1503.840 24 128 0.088 1454.935 24 256 0.134 1910.573 24 256 0.149 1717.987 24 512 0.199 2571.837 24 512 0.246 2080.895 24 1024 0.364 2812.683 24 1024 0.478 2142.128 24 2048 0.698 2934.723 24 2048 0.912 2245.735 24 4096 1.365 3000.326 24 4096 1.802 2272.770 24 8192 2.726 3005.050 24 8192 3.602 2274.274 24 16384 5.394 3037.325 24 16384 7.157 2289.199 24 32768 10.851 3019.840 24 32768 14.291 2292.904 24 65536 22.901 2861.702 24 65536 29.771 2201.330 24 131072 45.544 2877.911 24 131072 59.481 2203.598 24 262144 91.047 2879.215 24 262144 119.313 2197.112 24 524288 186.658 2808.818 24 524288 239.987 2184.650 24 1048576 491.495 2133.441 24 1048576 516.874 2028.688 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2082.022 76.960 3037.325 1699.481 105.517 2292.904 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 25 4 0.033 121.574 25 4 0.053 75.573 25 8 0.041 195.084 25 8 0.040 199.729 25 16 0.055 290.515 25 16 0.034 472.598 25 32 0.057 561.580 25 32 0.045 710.147 25 64 0.070 916.162 25 64 0.062 1032.444 25 128 0.095 1348.922 25 128 0.091 1405.421 25 256 0.141 1813.753 25 256 0.157 1629.350 25 512 0.200 2559.575 25 512 0.283 1809.169 25 1024 0.362 2829.359 25 1024 0.546 1875.532 25 2048 0.688 2976.415 25 2048 1.046 1958.043 25 4096 1.339 3059.094 25 4096 2.077 1972.204 25 8192 2.662 3077.451 25 8192 4.287 1910.891 25 16384 5.331 3073.322 25 16384 8.262 1983.017 25 32768 10.969 2987.349 25 32768 16.806 1949.793 25 65536 22.625 2896.623 25 65536 33.378 1963.442 25 131072 45.136 2903.936 25 131072 66.661 1966.244 25 262144 90.221 2905.579 25 262144 133.300 1966.571 25 524288 182.957 2865.636 25 524288 268.451 1953.012 25 1048576 478.629 2190.790 25 1048576 572.679 1831.002 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2082.775 121.574 3077.451 1508.641 75.573 1983.017 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 26 4 0.052 76.960 26 4 0.030 133.153 26 8 0.041 195.084 26 8 0.040 199.729 26 16 0.054 296.942 26 16 0.037 432.960 26 32 0.057 561.580 26 32 0.045 710.147 26 64 0.070 916.162 26 64 0.062 1032.444 26 128 0.094 1362.617 26 128 0.096 1335.500 26 256 0.132 1938.162 26 256 0.156 1641.807 26 512 0.210 2437.552 26 512 0.287 1783.624 26 1024 0.380 2694.459 26 1024 0.529 1935.542 26 2048 0.715 2864.266 26 2048 1.041 1967.461 26 4096 1.392 2942.766 26 4096 2.039 2008.872 26 8192 2.765 2962.813 26 8192 4.037 2029.278 26 16384 5.509 2973.968 26 16384 8.025 2041.638 26 32768 11.091 2954.469 26 32768 16.010 2046.715 26 65536 23.434 2796.629 26 65536 33.033 1983.947 26 131072 46.774 2802.246 26 131072 65.901 1988.929 26 262144 93.547 2802.274 26 262144 131.762 1989.526 26 524288 187.869 2790.709 26 524288 264.438 1982.651 26 1048576 494.611 2120.002 26 1048576 572.208 1832.509 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2025.772 76.960 2973.968 1530.338 133.153 2046.715 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 27 4 0.056 71.698 27 4 0.037 108.240 27 8 0.042 190.650 27 8 0.040 199.729 27 16 0.054 296.942 27 16 0.034 472.598 27 32 0.057 561.580 27 32 0.044 729.444 27 64 0.070 913.046 27 64 0.063 1016.801 27 128 0.095 1345.541 27 128 0.096 1332.186 27 256 0.145 1766.023 27 256 0.166 1542.733 27 512 0.214 2394.073 27 512 0.282 1815.286 27 1024 0.395 2592.014 27 1024 0.540 1896.233 27 2048 0.755 2712.325 27 2048 1.036 1976.970 27 4096 1.477 2773.183 27 4096 2.042 2005.822 27 8192 2.950 2776.993 27 8192 4.071 2012.283 27 16384 5.838 2806.480 27 16384 8.096 2023.661 27 32768 11.646 2813.662 27 32768 16.151 2028.829 27 65536 23.816 2751.779 27 65536 33.765 1940.940 27 131072 47.588 2754.315 27 131072 67.378 1945.322 27 262144 95.059 2757.700 27 262144 134.678 1946.452 27 524288 193.750 2706.001 27 524288 271.269 1932.725 27 1048576 513.704 2041.206 27 1048576 593.153 1767.800 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1948.695 71.698 2813.662 1510.213 108.240 2028.829 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 28 4 0.032 125.203 28 4 0.053 75.234 28 8 0.042 190.650 28 8 0.038 211.034 28 16 0.055 290.515 28 16 0.034 472.598 28 32 0.058 552.336 28 32 0.045 710.147 28 64 0.072 888.859 28 64 0.061 1048.576 28 128 0.086 1487.177 28 128 0.095 1345.541 28 256 0.132 1938.162 28 256 0.162 1581.358 28 512 0.214 2391.407 28 512 0.266 1924.269 28 1024 0.392 2612.511 28 1024 0.501 2044.249 28 2048 0.744 2752.302 28 2048 0.982 2085.442 28 4096 1.453 2819.145 28 4096 1.913 2141.327 28 8192 2.870 2854.273 28 8192 3.814 2147.886 28 16384 5.684 2882.528 28 16384 7.580 2161.466 28 32768 11.549 2837.303 28 32768 15.118 2167.499 28 65536 24.092 2720.244 28 65536 31.201 2100.453 28 131072 48.126 2723.518 28 131072 62.242 2105.852 28 262144 96.211 2724.679 28 262144 124.439 2106.606 28 524288 191.397 2739.267 28 524288 250.025 2096.942 28 1048576 512.049 2047.804 28 1048576 574.863 1824.045 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1977.783 125.203 2882.528 1597.396 75.234 2167.499 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 29 4 0.056 71.392 29 4 0.037 108.240 29 8 0.042 190.650 29 8 0.040 199.729 29 16 0.054 296.942 29 16 0.034 469.293 29 32 0.057 561.580 29 32 0.044 725.501 29 64 0.070 916.162 29 64 0.062 1032.444 29 128 0.096 1335.500 29 128 0.097 1319.093 29 256 0.144 1777.718 29 256 0.164 1562.943 29 512 0.221 2316.595 29 512 0.277 1848.093 29 1024 0.402 2547.430 29 1024 0.524 1954.034 29 2048 0.762 2687.714 29 2048 1.017 2013.581 29 4096 1.490 2748.779 29 4096 2.018 2029.758 29 8192 2.943 2783.517 29 8192 3.999 2048.515 29 16384 5.801 2824.359 29 16384 7.950 2060.863 29 32768 11.686 2804.018 29 32768 15.933 2056.607 29 65536 24.736 2649.400 29 65536 33.443 1959.634 29 131072 49.355 2655.697 29 131072 66.776 1962.860 29 262144 98.647 2657.398 29 262144 133.469 1964.084 29 524288 202.235 2592.469 29 524288 270.200 1940.370 29 1048576 516.203 2031.324 29 1048576 601.994 1741.838 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1918.350 71.392 2824.359 1526.183 108.240 2060.863 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 30 4 0.032 125.203 30 4 0.053 75.234 30 8 0.041 195.084 30 8 0.039 204.600 30 16 0.055 290.515 30 16 0.033 486.296 30 32 0.059 543.392 30 32 0.044 725.501 30 64 0.071 900.790 30 64 0.062 1032.444 30 128 0.097 1319.093 30 128 0.097 1319.093 30 256 0.135 1897.070 30 256 0.166 1542.733 30 512 0.222 2306.642 30 512 0.271 1890.391 30 1024 0.412 2485.513 30 1024 0.510 2007.932 30 2048 0.791 2588.889 30 2048 0.990 2068.369 30 4096 1.550 2642.650 30 4096 1.950 2100.485 30 8192 3.103 2640.011 30 8192 3.883 2109.771 30 16384 6.138 2669.236 30 16384 7.768 2109.189 30 32768 12.507 2619.931 30 32768 15.886 2062.688 30 65536 25.431 2576.996 30 65536 32.596 2010.561 30 131072 49.986 2622.180 30 131072 65.109 2013.116 30 262144 99.909 2623.826 30 262144 130.192 2013.522 30 524288 203.079 2581.695 30 524288 262.594 1996.573 30 1048576 518.156 2023.668 30 1048576 608.549 1723.076 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1876.441 125.203 2669.236 1552.188 75.234 2109.771 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 31 4 0.055 72.944 31 4 0.037 108.240 31 8 0.041 195.084 31 8 0.040 199.729 31 16 0.052 307.839 31 16 0.033 486.296 31 32 0.057 561.580 31 32 0.042 762.601 31 64 0.067 955.286 31 64 0.061 1048.576 31 128 0.094 1362.617 31 128 0.096 1332.186 31 256 0.144 1777.718 31 256 0.169 1514.445 31 512 0.222 2306.642 31 512 0.272 1882.107 31 1024 0.408 2510.209 31 1024 0.514 1992.100 31 2048 0.771 2656.955 31 2048 1.007 2033.602 31 4096 1.522 2691.082 31 4096 1.967 2082.408 31 8192 3.012 2719.840 31 8192 3.923 2088.230 31 16384 5.906 2774.079 31 16384 7.800 2100.485 31 32768 11.769 2784.250 31 32768 15.753 2080.108 31 65536 25.447 2575.379 31 65536 33.391 1962.685 31 131072 50.812 2579.548 31 131072 66.706 1964.922 31 262144 101.641 2579.118 31 262144 133.307 1966.469 31 524288 206.471 2539.282 31 524288 270.416 1938.820 31 1048576 524.231 2000.218 31 1048576 623.542 1681.645 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1892.088 72.944 2784.250 1538.192 108.240 2100.485 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 32 4 0.022 182.361 32 4 0.024 166.111 32 8 0.024 335.544 32 8 0.027 296.942 32 16 0.034 472.598 32 16 0.031 516.222 32 32 0.039 823.422 32 32 0.041 780.336 32 64 0.052 1231.355 32 64 0.049 1309.441 32 128 0.076 1682.981 32 128 0.074 1726.273 32 256 0.125 2049.126 32 256 0.117 2191.310 32 512 0.226 2265.278 32 512 0.203 2523.483 32 1024 0.437 2343.135 32 1024 0.386 2652.852 32 2048 0.818 2503.624 32 2048 0.745 2748.779 32 4096 1.633 2508.010 32 4096 1.472 2782.616 32 8192 3.202 2558.432 32 8192 2.932 2794.156 32 16384 6.369 2572.414 32 16384 5.831 2809.808 32 32768 12.801 2559.766 32 32768 11.877 2758.987 32 65536 26.277 2494.038 32 65536 25.038 2617.486 32 131072 52.470 2498.038 32 131072 50.012 2620.805 32 262144 104.852 2500.134 32 262144 99.969 2622.249 32 524288 214.855 2440.192 32 524288 204.446 2564.435 32 1048576 529.101 1981.806 32 1048576 496.184 2113.280 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1894.856 182.361 2572.414 2031.346 166.111 2809.808 stats by bits per item pack: unpack: bits avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1 3810.909 67.650 5966.268 3353.395 166.111 4735.009 2 3620.621 71.698 5736.662 3094.968 142.180 4360.857 3 3409.520 69.042 5354.486 2771.287 137.518 3852.016 4 3318.939 70.198 5139.057 2684.473 137.518 3764.497 5 3195.243 66.841 4989.072 2356.083 120.699 3248.457 6 3054.477 67.924 4744.837 2244.887 129.056 3067.954 7 2892.941 65.536 4401.991 2073.664 117.323 2808.000 8 2862.145 70.198 4293.626 2442.433 142.180 3377.625 9 2855.762 65.793 4356.227 2214.349 129.056 3087.232 10 2779.984 66.576 4211.785 2221.498 129.056 3107.159 11 2700.259 68.759 4124.819 2090.303 105.517 2855.489 12 2628.347 114.131 3863.249 1925.882 76.960 2587.890 13 2624.852 120.699 4129.032 1916.455 67.924 2607.059 14 2568.475 114.131 3930.870 1910.122 70.198 2607.381 15 2489.067 66.576 3751.780 1820.245 129.056 2476.422 16 2512.384 69.042 3717.782 2145.652 148.471 2951.044 17 2399.336 66.576 3602.594 1745.681 102.300 2345.575 18 2380.599 121.574 3592.987 1712.676 69.042 2329.276 19 2326.732 121.574 3470.330 1698.389 72.629 2321.682 20 2308.189 67.924 3460.892 1629.161 125.203 2176.113 21 2225.851 69.042 3296.689 1465.365 102.300 1946.424 22 2141.094 120.699 3069.204 1480.130 69.905 1958.071 23 2098.749 66.576 3056.236 1485.896 121.574 1963.694 24 2082.022 76.960 3037.325 1699.481 105.517 2292.904 25 2082.775 121.574 3077.451 1508.641 75.573 1983.017 26 2025.772 76.960 2973.968 1530.338 133.153 2046.715 27 1948.695 71.698 2813.662 1510.213 108.240 2028.829 28 1977.783 125.203 2882.528 1597.396 75.234 2167.499 29 1918.350 71.392 2824.359 1526.183 108.240 2060.863 30 1876.441 125.203 2669.236 1552.188 75.234 2109.771 31 1892.088 72.944 2784.250 1538.192 108.240 2100.485 32 1894.856 182.361 2572.414 2031.346 166.111 2809.808 stats by size pack: unpack: size(B) avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4 87.283 65.536 182.361 111.479 67.924 166.111 8 191.828 170.327 335.544 204.506 142.785 296.942 16 306.553 280.790 472.598 477.331 432.960 532.610 32 576.020 524.288 823.422 769.787 639.132 972.592 64 988.318 762.601 1231.355 1185.230 1016.801 1688.273 128 1541.013 1319.093 1910.573 1620.179 1319.093 2375.535 256 2116.719 1766.023 2612.511 1976.002 1514.445 3195.660 512 3014.379 2265.278 4269.351 2331.487 1717.987 3794.141 1024 3388.308 2343.135 5250.571 2504.846 1828.424 4286.395 2048 3603.621 2503.624 5520.524 2595.497 1887.483 4499.704 4096 3719.041 2508.010 5794.222 2641.986 1919.538 4496.171 8192 3768.947 2558.432 5966.268 2658.144 1910.891 4549.151 16384 3805.045 2572.414 5869.948 2676.131 1941.228 4586.803 32768 3757.439 2559.766 5914.915 2683.112 1946.424 4713.432 65536 3587.528 2494.038 5690.818 2647.446 1868.723 4726.724 131072 3600.540 2498.038 5714.183 2628.111 1870.987 4732.543 262144 3605.391 2500.134 5730.563 2620.694 1871.283 4735.009 524288 3575.566 2440.192 5722.659 2602.757 1863.214 4729.876 1048576 2802.770 1981.806 4891.474 2457.854 1681.645 4658.745 real 0m52.054s user 0m52.032s sys 0m0.000s ================================================ FILE: benchmark/PackedArraySIMDSelfBench-unrolled-mbp-corei7-M620-2.67GHz.txt ================================================ -- PackedArray self bench ------------------------------------------------------ memcpy: bits size (B) time (µs) speed (B/µs) 32 4 0.018 220.753 32 8 0.012 657.930 32 16 0.014 1137.438 32 32 0.018 1766.023 32 64 0.028 2294.320 32 128 0.018 7158.279 32 256 0.022 11545.611 32 512 0.031 16519.105 32 1024 0.046 22253.717 32 2048 0.074 27709.466 32 4096 0.130 31522.696 32 8192 0.343 23877.511 32 16384 0.626 26168.879 32 32768 2.160 15169.862 32 65536 3.331 19674.891 32 131072 6.634 19757.621 32 262144 24.842 10552.441 32 524288 45.101 11624.772 32 1048576 87.606 11969.232 avg (B/µs) min (B/µs) max (B/µs) 13767.397 220.753 31522.696 loopcpy: bits size (B) time (µs) speed (B/µs) 32 4 0.006 671.089 32 8 0.004 1973.790 32 16 0.006 2581.110 32 32 0.008 4067.204 32 64 0.014 4628.198 32 128 0.008 15790.321 32 256 0.011 23342.214 32 512 0.017 30246.249 32 1024 0.027 38008.560 32 2048 0.046 44507.433 32 4096 0.084 48806.447 32 8192 0.202 40566.397 32 16384 0.466 35168.617 32 32768 1.719 19062.268 32 65536 3.416 19186.006 32 131072 6.523 20094.149 32 262144 21.480 12204.049 32 524288 43.200 12136.292 32 1048576 87.176 12028.253 avg (B/µs) min (B/µs) max (B/µs) 20266.771 671.089 48806.447 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 1 4 0.022 182.361 1 4 0.007 559.241 1 8 0.010 798.915 1 8 0.008 986.895 1 16 0.011 1458.888 1 16 0.008 1973.790 1 32 0.012 2684.355 1 32 0.010 3195.660 1 64 0.012 5263.440 1 64 0.011 5835.553 1 128 0.015 8521.761 1 128 0.013 9761.289 1 256 0.020 12782.641 1 256 0.018 14128.182 1 512 0.021 24403.223 1 512 0.024 21262.214 1 1024 0.037 27709.466 1 1024 0.040 25565.282 1 2048 0.060 34087.042 1 2048 0.071 28825.284 1 4096 0.117 34989.550 1 4096 0.134 30569.162 1 8192 0.225 36398.028 1 8192 0.262 31264.548 1 16384 0.447 36650.388 1 16384 0.552 29671.622 1 32768 1.039 31537.162 1 32768 1.098 29845.593 1 65536 1.948 33640.669 1 65536 2.261 28986.387 1 131072 4.130 31735.601 1 131072 5.003 26198.809 1 262144 8.571 30584.468 1 262144 9.560 27420.610 1 524288 21.627 24242.347 1 524288 29.280 17906.043 1 1048576 43.770 23956.459 1 1048576 59.530 17614.239 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 21138.251 182.361 36650.388 18503.705 559.241 31264.548 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 2 4 0.018 223.696 2 4 0.010 399.458 2 8 0.011 713.924 2 8 0.010 798.915 2 16 0.013 1242.757 2 16 0.008 1973.790 2 32 0.013 2440.322 2 32 0.010 3195.660 2 64 0.013 4971.027 2 64 0.011 5835.553 2 128 0.016 8012.999 2 128 0.013 9761.289 2 256 0.020 12782.641 2 256 0.018 14316.558 2 512 0.022 23342.214 2 512 0.024 21262.214 2 1024 0.036 28443.492 2 1024 0.039 26188.825 2 2048 0.065 31464.962 2 2048 0.077 26594.225 2 4096 0.135 30353.126 2 4096 0.242 16925.979 2 8192 0.387 21170.510 2 8192 0.321 25508.343 2 16384 0.445 36827.158 2 16384 0.580 28256.364 2 32768 0.925 35422.411 2 32768 1.156 28349.619 2 65536 2.020 32445.456 2 65536 2.403 27272.339 2 131072 4.041 32435.885 2 131072 4.801 27300.780 2 262144 8.950 29289.849 2 262144 10.067 26039.968 2 524288 22.701 23095.345 2 524288 30.490 17195.453 2 1048576 45.515 23038.001 2 1048576 60.795 17247.715 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 19879.778 223.696 36827.158 17074.897 399.458 28349.619 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 3 4 0.009 441.506 3 4 0.020 199.729 3 8 0.010 798.915 3 8 0.010 798.915 3 16 0.013 1220.161 3 16 0.008 1973.790 3 32 0.012 2684.355 3 32 0.010 3195.660 3 64 0.014 4628.198 3 64 0.011 5835.553 3 128 0.016 8012.999 3 128 0.013 9942.054 3 256 0.022 11545.611 3 256 0.018 14316.558 3 512 0.023 22369.621 3 512 0.026 19701.685 3 1024 0.037 27531.842 3 1024 0.044 23342.214 3 2048 0.067 30569.162 3 2048 0.082 24970.740 3 4096 0.124 33038.210 3 4096 0.162 25264.514 3 8192 0.241 34019.543 3 8192 0.323 25376.469 3 16384 0.474 34567.141 3 16384 0.638 25679.924 3 32768 1.026 31940.263 3 32768 1.356 24162.967 3 65536 2.066 31719.122 3 65536 2.685 24407.557 3 131072 4.537 28888.902 3 131072 5.382 24353.496 3 262144 9.738 26919.783 3 262144 11.681 22442.219 3 524288 23.531 22280.774 3 524288 31.869 16451.258 3 1048576 48.961 21416.589 3 1048576 63.654 16473.010 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 19715.405 441.506 34567.141 16257.279 199.729 25679.924 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 4 4 0.023 172.961 4 4 0.008 493.448 4 8 0.011 729.444 4 8 0.010 798.915 4 16 0.012 1342.177 4 16 0.009 1766.023 4 32 0.012 2631.720 4 32 0.010 3195.660 4 64 0.014 4549.753 4 64 0.010 6391.320 4 128 0.016 8012.999 4 128 0.013 9942.054 4 256 0.021 12201.612 4 256 0.018 14316.558 4 512 0.023 22369.621 4 512 0.026 19701.685 4 1024 0.037 27709.466 4 1024 0.043 23860.929 4 2048 0.064 32051.995 4 2048 0.079 25951.464 4 4096 0.121 33818.640 4 4096 0.158 25951.464 4 8192 0.233 35168.617 4 8192 0.303 27054.912 4 16384 0.456 35922.361 4 16384 0.645 25404.612 4 32768 1.086 30173.206 4 32768 1.281 25579.556 4 65536 2.191 29910.545 4 65536 2.934 22336.901 4 131072 5.206 25176.581 4 131072 5.209 25162.752 4 262144 10.523 24911.336 4 262144 11.514 22767.516 4 524288 25.074 20909.623 4 524288 34.952 15000.159 4 1048576 49.470 21196.222 4 1048576 64.316 16303.493 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 19418.888 172.961 35922.361 16419.970 493.448 27054.912 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 5 4 0.023 172.961 5 4 0.010 399.458 5 8 0.011 729.444 5 8 0.010 798.915 5 16 0.012 1342.177 5 16 0.009 1813.753 5 32 0.013 2485.513 5 32 0.010 3195.660 5 64 0.015 4260.880 5 64 0.011 5835.553 5 128 0.017 7561.562 5 128 0.014 9099.507 5 256 0.023 11184.811 5 256 0.020 12782.641 5 512 0.025 20648.881 5 512 0.029 17747.799 5 1024 0.038 26843.546 5 1024 0.049 20951.060 5 2048 0.069 29722.957 5 2048 0.092 22253.717 5 4096 0.133 30843.571 5 4096 0.180 22754.794 5 8192 0.264 31038.607 5 8192 0.511 16033.476 5 16384 0.650 25199.661 5 16384 0.719 22784.972 5 32768 1.106 29626.849 5 32768 1.495 21916.593 5 65536 2.239 29270.355 5 65536 3.291 19912.917 5 131072 4.728 27723.440 5 131072 6.135 21364.675 5 262144 10.780 24317.409 5 262144 13.470 19461.416 5 524288 24.463 21431.931 5 524288 32.856 15957.152 5 1048576 50.531 20751.082 5 1048576 66.850 15685.517 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 18166.086 172.961 31038.607 14249.978 399.458 22784.972 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 6 4 0.013 310.689 6 4 0.032 125.203 6 8 0.015 532.610 6 8 0.010 798.915 6 16 0.014 1137.438 6 16 0.010 1597.830 6 32 0.013 2440.322 6 32 0.011 2917.777 6 64 0.015 4260.880 6 64 0.013 4880.645 6 128 0.017 7561.562 6 128 0.016 7895.160 6 256 0.023 11184.811 6 256 0.022 11545.611 6 512 0.027 19004.280 6 512 0.033 15449.523 6 1024 0.042 24403.223 6 1024 0.056 18276.457 6 2048 0.076 27012.373 6 2048 0.095 21582.750 6 4096 0.134 30569.162 6 4096 0.190 21555.670 6 8192 0.255 32141.944 6 8192 0.366 22369.621 6 16384 0.538 30460.761 6 16384 0.796 20580.856 6 32768 1.182 27726.236 6 32768 1.578 20767.445 6 65536 2.506 26151.452 6 65536 3.083 21257.281 6 131072 4.590 28557.260 6 131072 6.151 21309.191 6 262144 10.603 24723.683 6 262144 13.410 19548.611 6 524288 24.601 21311.669 6 524288 33.393 15700.468 6 1048576 49.442 21208.181 6 1048576 67.457 15544.371 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 17931.502 310.689 32141.944 13879.126 125.203 22369.621 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 7 4 0.020 199.729 7 4 0.011 364.722 7 8 0.012 657.930 7 8 0.011 729.444 7 16 0.013 1220.161 7 16 0.009 1766.023 7 32 0.014 2314.099 7 32 0.010 3195.660 7 64 0.016 4006.499 7 64 0.010 6391.320 7 128 0.020 6391.320 7 128 0.015 8521.761 7 256 0.026 9850.842 7 256 0.023 11069.503 7 512 0.028 18199.014 7 512 0.035 14608.732 7 1024 0.046 22253.717 7 1024 0.063 16268.816 7 2048 0.074 27620.368 7 2048 0.101 20259.280 7 4096 0.141 29069.153 7 4096 0.193 21235.932 7 8192 0.268 30569.162 7 8192 0.389 21066.670 7 16384 0.552 29684.439 7 16384 0.783 20925.541 7 32768 1.173 27934.747 7 32768 1.632 20078.737 7 65536 2.358 27793.519 7 65536 3.346 19586.569 7 131072 4.907 26710.515 7 131072 6.903 18987.215 7 262144 11.236 23330.822 7 262144 13.842 18938.159 7 524288 25.820 20305.486 7 524288 33.993 15423.408 7 1048576 51.133 20506.773 7 1048576 69.600 15065.776 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 17295.700 199.729 30569.162 13393.856 364.722 21235.932 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 8 4 0.009 441.506 8 4 0.022 182.361 8 8 0.010 798.915 8 8 0.010 798.915 8 16 0.012 1342.177 8 16 0.009 1766.023 8 32 0.012 2631.720 8 32 0.009 3627.506 8 64 0.012 5368.709 8 64 0.010 6391.320 8 128 0.015 8521.761 8 128 0.012 10526.881 8 256 0.022 11671.107 8 256 0.019 13421.773 8 512 0.023 22139.007 8 512 0.029 17602.325 8 1024 0.037 27709.466 8 1024 0.047 21801.864 8 2048 0.068 30034.736 8 2048 0.087 23534.067 8 4096 0.125 32786.010 8 4096 0.168 24368.609 8 8192 0.242 33851.959 8 8192 0.337 24316.871 8 16384 0.629 26049.840 8 16384 0.670 24455.330 8 32768 1.198 27351.036 8 32768 1.411 23223.885 8 65536 2.319 28262.174 8 65536 2.789 23497.855 8 131072 4.712 27817.427 8 131072 5.488 23883.735 8 262144 11.475 22845.096 8 262144 12.625 20763.916 8 524288 25.747 20363.023 8 524288 34.041 15401.695 8 1048576 53.135 19734.217 8 1048576 68.364 15338.153 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 18406.310 441.506 33851.959 15521.215 182.361 24455.330 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 9 4 0.022 180.400 9 4 0.010 399.458 9 8 0.011 729.444 9 8 0.010 798.915 9 16 0.012 1315.860 9 16 0.009 1766.023 9 32 0.013 2485.513 9 32 0.009 3532.045 9 64 0.013 4880.645 9 64 0.011 5835.553 9 128 0.017 7456.540 9 128 0.015 8521.761 9 256 0.023 11069.503 9 256 0.024 10737.418 9 512 0.026 19701.685 9 512 0.036 14221.746 9 1024 0.044 23216.039 9 1024 0.059 17388.532 9 2048 0.076 27012.373 9 2048 0.110 18633.264 9 4096 0.148 27664.846 9 4096 0.215 19046.418 9 8192 0.288 28443.492 9 8192 0.423 19368.511 9 16384 0.636 25756.925 9 16384 1.050 15603.878 9 32768 1.246 26299.073 9 32768 1.773 18480.429 9 65536 2.539 25810.132 9 65536 3.523 18601.740 9 131072 4.998 26225.054 9 131072 7.305 17943.008 9 262144 12.410 21123.331 9 262144 14.826 17681.300 9 524288 27.655 18958.078 9 524288 35.066 14951.408 9 1048576 55.775 18800.132 9 1048576 70.361 14902.772 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 16691.003 180.400 28443.492 12548.115 399.458 19368.511 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 10 4 0.010 409.200 10 4 0.025 159.783 10 8 0.012 671.089 10 8 0.011 713.924 10 16 0.013 1242.757 10 16 0.010 1597.830 10 32 0.014 2274.877 10 32 0.010 3195.660 10 64 0.015 4260.880 10 64 0.012 5368.709 10 128 0.019 6710.886 10 128 0.016 8012.999 10 256 0.025 10226.113 10 256 0.026 9850.842 10 512 0.029 17747.799 10 512 0.040 12782.641 10 1024 0.049 20849.356 10 1024 0.070 14608.732 10 2048 0.109 18796.356 10 2048 0.122 16777.216 10 4096 0.162 25301.722 10 4096 0.233 17584.308 10 8192 0.315 26010.400 10 8192 0.489 16752.676 10 16384 0.666 24595.375 10 16384 0.878 18658.560 10 32768 1.801 18194.196 10 32768 1.862 17597.817 10 65536 2.788 23505.893 10 65536 3.598 18214.691 10 131072 5.647 23210.158 10 131072 7.537 17390.182 10 262144 14.284 18352.417 10 262144 15.435 16983.760 10 524288 30.388 17253.060 10 524288 35.495 14770.739 10 1048576 61.104 17160.564 10 1048576 70.953 14778.481 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 14567.005 409.200 26010.400 11884.187 159.783 18658.560 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 11 4 0.024 166.111 11 4 0.010 399.458 11 8 0.011 729.444 11 8 0.010 798.915 11 16 0.012 1342.177 11 16 0.008 2033.602 11 32 0.012 2631.720 11 32 0.010 3195.660 11 64 0.014 4549.753 11 64 0.011 5835.553 11 128 0.017 7456.540 11 128 0.015 8521.761 11 256 0.024 10737.418 11 256 0.026 9850.842 11 512 0.027 19004.280 11 512 0.038 13421.773 11 1024 0.045 22724.695 11 1024 0.064 16025.997 11 2048 0.082 25043.541 11 2048 0.118 17353.403 11 4096 0.154 26594.225 11 4096 0.227 18046.081 11 8192 0.300 27312.988 11 8192 0.449 18237.653 11 16384 0.605 27086.905 11 16384 0.906 18084.073 11 32768 1.301 25185.808 11 32768 1.881 17419.386 11 65536 2.709 24190.610 11 65536 3.908 16769.028 11 131072 5.210 25158.146 11 131072 7.922 16544.956 11 262144 13.235 19806.738 11 262144 16.592 15799.397 11 524288 29.154 17983.360 11 524288 36.263 14457.937 11 1048576 58.338 17974.173 11 1048576 73.241 14316.791 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 16088.349 166.111 27312.988 11953.277 399.458 18237.653 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 12 4 0.018 220.753 12 4 0.009 441.506 12 8 0.012 671.089 12 8 0.011 729.444 12 16 0.013 1242.757 12 16 0.009 1813.753 12 32 0.016 2003.250 12 32 0.011 2917.777 12 64 0.023 2767.376 12 64 0.035 1826.092 12 128 0.030 4260.880 12 128 0.029 4400.581 12 256 0.047 5450.466 12 256 0.046 5592.405 12 512 0.053 9673.350 12 512 0.067 7642.291 12 1024 0.084 12201.612 12 1024 0.094 10900.932 12 2048 0.081 25339.040 12 2048 0.113 18122.225 12 4096 0.172 23827.835 12 4096 0.232 17656.597 12 8192 0.298 27487.791 12 8192 0.468 17503.687 12 16384 0.595 27531.842 12 16384 1.062 15428.711 12 32768 1.395 23489.823 12 32768 1.829 17916.693 12 65536 2.822 23223.885 12 65536 3.864 16960.443 12 131072 5.251 24961.670 12 131072 7.340 17857.332 12 262144 13.484 19441.114 12 262144 16.045 16337.954 12 524288 30.021 17463.931 12 524288 36.785 14252.717 12 1048576 60.015 17471.840 12 1048576 80.184 13077.125 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 14143.700 220.753 27531.842 10598.856 441.506 18122.225 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 13 4 0.026 153.919 13 4 0.011 356.962 13 8 0.012 671.089 13 8 0.011 729.444 13 16 0.013 1242.757 13 16 0.009 1766.023 13 32 0.013 2440.322 13 32 0.010 3195.660 13 64 0.016 4006.499 13 64 0.012 5263.440 13 128 0.019 6710.886 13 128 0.017 7561.562 13 256 0.027 9418.788 13 256 0.028 9177.281 13 512 0.031 16519.105 13 512 0.042 12201.612 13 1024 0.050 20452.225 13 1024 0.072 14221.746 13 2048 0.094 21746.670 13 2048 0.127 16116.200 13 4096 0.162 25301.722 13 4096 0.237 17283.571 13 8192 0.314 26089.399 13 8192 0.499 16416.502 13 16384 0.638 25679.924 13 16384 0.945 17340.267 13 32768 1.455 22519.901 13 32768 2.026 16173.094 13 65536 2.802 23389.883 13 65536 4.045 16201.692 13 131072 5.757 22767.044 13 131072 8.262 15864.595 13 262144 14.308 18321.529 13 262144 17.174 15263.999 13 524288 30.971 16928.325 13 524288 37.157 14110.142 13 1048576 62.488 16780.481 13 1048576 77.627 13507.887 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 14796.867 153.919 26089.399 11197.457 356.962 17340.267 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 14 4 0.023 174.763 14 4 0.010 399.458 14 8 0.011 729.444 14 8 0.010 798.915 14 16 0.013 1242.757 14 16 0.008 1973.790 14 32 0.013 2440.322 14 32 0.008 4067.204 14 64 0.014 4628.198 14 64 0.011 5711.393 14 128 0.017 7561.562 14 128 0.016 8012.999 14 256 0.024 10737.418 14 256 0.026 9761.289 14 512 0.028 18354.561 14 512 0.039 13094.412 14 1024 0.045 22724.695 14 1024 0.068 15070.061 14 2048 0.085 24129.030 14 2048 0.124 16519.105 14 4096 0.161 25451.658 14 4096 0.256 15996.154 14 8192 0.323 25357.740 14 8192 0.474 17283.571 14 16384 0.647 25320.367 14 16384 1.032 15877.883 14 32768 1.397 23457.749 14 32768 2.017 16245.739 14 65536 2.792 23473.775 14 65536 4.009 16347.184 14 131072 6.181 21205.624 14 131072 8.259 15870.091 14 262144 14.907 17585.433 14 262144 17.974 14584.704 14 524288 32.530 16117.145 14 524288 38.564 13595.282 14 1048576 64.248 16320.735 14 1048576 76.196 13761.570 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 15105.946 174.763 25451.658 11314.253 399.458 17283.571 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 15 4 0.026 152.520 15 4 0.011 364.722 15 8 0.012 657.930 15 8 0.012 671.089 15 16 0.013 1242.757 15 16 0.011 1458.888 15 32 0.016 2003.250 15 32 0.011 2917.777 15 64 0.014 4549.753 15 64 0.013 4880.645 15 128 0.017 7561.562 15 128 0.017 7456.540 15 256 0.025 10226.113 15 256 0.028 9177.281 15 512 0.030 17179.869 15 512 0.045 11422.785 15 1024 0.049 20951.060 15 1024 0.075 13634.817 15 2048 0.089 23029.315 15 2048 0.131 15618.063 15 4096 0.166 24648.306 15 4096 0.254 16131.333 15 8192 0.331 24754.855 15 8192 0.503 16284.236 15 16384 0.654 25052.671 15 16384 1.017 16108.644 15 32768 1.645 19921.576 15 32768 2.081 15746.901 15 65536 3.575 18331.304 15 65536 4.176 15692.961 15 131072 6.690 19592.153 15 131072 8.457 15498.740 15 262144 18.268 14349.816 15 262144 18.746 13984.072 15 524288 37.990 13800.737 15 524288 38.799 13512.992 15 1048576 74.801 14018.214 15 1048576 77.943 13453.098 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 13790.724 152.520 25052.671 10737.662 364.722 16284.236 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 16 4 0.010 399.458 16 4 0.020 199.729 16 8 0.011 729.444 16 8 0.012 671.089 16 16 0.013 1220.161 16 16 0.012 1342.177 16 32 0.012 2631.720 16 32 0.013 2440.322 16 64 0.014 4628.198 16 64 0.013 4971.027 16 128 0.018 7064.091 16 128 0.016 8012.999 16 256 0.025 10226.113 16 256 0.022 11671.107 16 512 0.026 19701.685 16 512 0.033 15561.476 16 1024 0.042 24403.223 16 1024 0.051 20069.941 16 2048 0.074 27709.466 16 2048 0.089 23029.315 16 4096 0.150 27312.988 16 4096 0.194 21131.450 16 8192 0.298 27487.791 16 8192 0.325 25208.906 16 16384 0.538 30447.265 16 16384 0.656 24979.817 16 32768 1.423 23029.315 16 32768 1.483 22096.295 16 65536 2.816 23273.043 16 65536 2.947 22239.313 16 131072 5.945 22047.556 16 131072 6.142 21339.796 16 262144 15.090 17372.047 16 262144 17.940 14612.227 16 524288 32.644 16060.878 16 524288 38.665 13559.737 16 1048576 64.920 16151.830 16 1048576 77.758 13485.149 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 15889.277 399.458 30447.265 14032.730 199.729 25208.906 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 17 4 0.025 159.783 17 4 0.011 364.722 17 8 0.012 671.089 17 8 0.010 798.915 17 16 0.013 1242.757 17 16 0.009 1813.753 17 32 0.013 2440.322 17 32 0.011 2917.777 17 64 0.016 4006.499 17 64 0.012 5368.709 17 128 0.019 6710.886 17 128 0.017 7561.562 17 256 0.027 9418.788 17 256 0.027 9502.140 17 512 0.031 16519.105 17 512 0.043 11864.551 17 1024 0.052 19701.685 17 1024 0.073 14035.841 17 2048 0.099 20698.638 17 2048 0.147 13922.098 17 4096 0.205 19976.592 17 4096 0.270 15163.168 17 8192 0.351 23326.367 17 8192 0.511 16033.476 17 16384 0.687 23844.371 17 16384 1.060 15456.473 17 32768 1.515 21630.304 17 32768 2.275 14402.070 17 65536 3.110 21071.515 17 65536 4.368 15003.434 17 131072 6.324 20726.731 17 131072 9.187 14267.143 17 262144 16.774 15628.052 17 262144 19.145 13692.548 17 524288 35.071 14949.376 17 524288 40.135 13063.065 17 1048576 75.861 13822.337 17 1048576 83.798 12513.149 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 13502.379 159.783 23844.371 10407.610 364.722 16033.476 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 18 4 0.024 166.111 18 4 0.010 399.458 18 8 0.012 657.930 18 8 0.010 798.915 18 16 0.012 1342.177 18 16 0.009 1766.023 18 32 0.013 2440.322 18 32 0.010 3195.660 18 64 0.014 4549.753 18 64 0.012 5368.709 18 128 0.018 7064.091 18 128 0.017 7561.562 18 256 0.025 10226.113 18 256 0.029 8873.899 18 512 0.031 16519.105 18 512 0.045 11422.785 18 1024 0.051 20069.941 18 1024 0.078 13094.412 18 2048 0.093 22025.473 18 2048 0.138 14835.811 18 4096 0.175 23405.816 18 4096 0.264 15505.297 18 8192 0.350 23405.816 18 8192 0.552 14842.220 18 16384 0.687 23852.647 18 16384 1.030 15907.286 18 32768 1.518 21586.140 18 32768 2.284 14346.446 18 65536 3.457 18957.097 18 65536 4.451 14723.762 18 131072 6.509 20136.838 18 131072 8.889 14745.482 18 262144 17.335 15122.084 18 262144 20.173 12994.902 18 524288 36.060 14539.381 18 524288 41.337 12683.258 18 1048576 72.036 14556.272 18 1048576 82.273 12745.079 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 13717.006 166.111 23852.647 10305.840 399.458 15907.286 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 19 4 0.010 399.458 19 4 0.025 159.783 19 8 0.012 671.089 19 8 0.011 713.924 19 16 0.012 1342.177 19 16 0.010 1597.830 19 32 0.014 2274.877 19 32 0.011 2917.777 19 64 0.016 4006.499 19 64 0.013 4880.645 19 128 0.024 5315.554 19 128 0.027 4751.070 19 256 0.043 5932.275 19 256 0.036 7110.873 19 512 0.034 15017.368 19 512 0.051 10034.970 19 1024 0.057 17895.697 19 1024 0.088 11639.478 19 2048 0.102 20069.941 19 2048 0.157 13034.802 19 4096 0.199 20574.694 19 4096 0.285 14376.460 19 8192 0.364 22516.211 19 8192 0.552 14842.220 19 16384 0.705 23239.593 19 16384 1.079 15183.269 19 32768 1.564 20951.060 19 32768 2.319 14129.634 19 65536 3.280 19979.496 19 65536 4.664 14050.908 19 131072 6.571 19946.875 19 131072 9.402 13940.809 19 262144 17.055 15370.476 19 262144 20.848 12574.182 19 524288 41.511 12630.080 19 524288 43.854 11955.307 19 1048576 76.281 13746.215 19 1048576 89.249 11748.896 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 12730.507 399.458 23239.593 9454.886 159.783 15183.269 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 20 4 0.023 174.763 20 4 0.010 399.458 20 8 0.011 729.444 20 8 0.010 798.915 20 16 0.012 1315.860 20 16 0.008 2033.602 20 32 0.012 2684.355 20 32 0.010 3195.660 20 64 0.014 4549.753 20 64 0.011 5835.553 20 128 0.017 7561.562 20 128 0.016 8012.999 20 256 0.025 10226.113 20 256 0.028 9099.507 20 512 0.031 16519.105 20 512 0.044 11608.020 20 1024 0.052 19701.685 20 1024 0.081 12632.257 20 2048 0.105 19478.310 20 2048 0.272 7528.426 20 4096 0.290 14116.573 20 4096 0.267 15339.169 20 8192 0.360 22754.794 20 8192 0.529 15484.335 20 16384 0.710 23075.714 20 16384 1.081 15156.479 20 32768 1.568 20896.906 20 32768 2.264 14473.352 20 65536 3.719 17621.508 20 65536 4.602 14240.903 20 131072 6.287 20847.775 20 131072 9.130 14356.187 20 262144 18.623 14076.271 20 262144 21.524 12179.176 20 524288 37.177 14102.450 20 524288 42.333 12384.886 20 1048576 74.974 13985.851 20 1048576 88.233 11884.171 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 12864.147 174.763 23075.714 9823.319 399.458 15484.335 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 21 4 0.022 182.361 21 4 0.010 399.458 21 8 0.012 657.930 21 8 0.010 798.915 21 16 0.012 1342.177 21 16 0.009 1813.753 21 32 0.012 2631.720 21 32 0.010 3195.660 21 64 0.015 4260.880 21 64 0.012 5263.440 21 128 0.019 6795.834 21 128 0.018 7064.091 21 256 0.026 9850.842 21 256 0.031 8259.552 21 512 0.033 15561.476 21 512 0.047 10900.932 21 1024 0.054 19004.280 21 1024 0.085 12030.721 21 2048 0.098 20900.084 21 2048 0.154 13297.112 21 4096 0.189 21664.400 21 4096 0.315 13005.200 21 8192 0.409 20023.158 21 8192 0.589 13905.196 21 16384 0.739 22174.726 21 16384 1.195 13710.989 21 32768 1.631 20093.414 21 32768 2.450 13374.752 21 65536 3.330 19680.526 21 65536 4.933 13285.544 21 131072 6.647 19718.645 21 131072 9.872 13276.881 21 262144 19.028 13776.615 21 262144 21.694 12083.740 21 524288 39.149 13392.183 21 524288 43.795 11971.383 21 1048576 77.526 13525.501 21 1048576 89.620 11700.262 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 12907.198 182.361 22174.726 9438.820 399.458 13905.196 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 22 4 0.018 220.753 22 4 0.010 399.458 22 8 0.012 671.089 22 8 0.010 798.915 22 16 0.012 1315.860 22 16 0.008 1973.790 22 32 0.013 2485.513 22 32 0.011 2917.777 22 64 0.014 4628.198 22 64 0.012 5368.709 22 128 0.018 7064.091 22 128 0.017 7561.562 22 256 0.025 10226.113 22 256 0.030 8521.761 22 512 0.032 15907.286 22 512 0.050 10275.041 22 1024 0.055 18673.771 22 1024 0.084 12201.612 22 2048 0.099 20698.638 22 2048 0.155 13215.284 22 4096 0.192 21341.452 22 4096 0.297 13788.017 22 8192 0.377 21732.915 22 8192 0.582 14076.091 22 16384 0.754 21726.044 22 16384 1.185 13826.856 22 32768 1.677 19542.010 22 32768 2.500 13108.150 22 65536 3.541 18507.804 22 65536 5.002 13101.902 22 131072 6.712 19528.126 22 131072 9.886 13258.310 22 262144 20.220 12964.563 22 262144 23.792 11018.255 22 524288 39.199 13374.996 22 524288 45.139 11614.948 22 1048576 82.557 12701.206 22 1048576 90.056 11643.607 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 12805.812 220.753 21732.915 9403.687 399.458 14076.091 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 23 4 0.025 159.783 23 4 0.010 399.458 23 8 0.012 671.089 23 8 0.010 798.915 23 16 0.013 1242.757 23 16 0.009 1766.023 23 32 0.013 2485.513 23 32 0.011 2917.777 23 64 0.015 4260.880 23 64 0.012 5368.709 23 128 0.018 7064.091 23 128 0.018 7064.091 23 256 0.027 9502.140 23 256 0.032 7953.643 23 512 0.032 16025.997 23 512 0.052 9850.842 23 1024 0.056 18276.457 23 1024 0.089 11483.870 23 2048 0.103 19884.108 23 2048 0.164 12485.370 23 4096 0.207 19769.700 23 4096 0.437 9372.542 23 8192 0.401 20427.906 23 8192 0.613 13359.152 23 16384 0.790 20742.371 23 16384 1.230 13320.310 23 32768 1.728 18962.328 23 32768 2.706 12109.159 23 65536 3.600 18203.835 23 65536 5.556 11795.816 23 131072 6.860 19106.656 23 131072 10.967 11951.733 23 262144 21.717 12071.005 23 262144 28.028 9352.929 23 524288 40.797 12851.143 23 524288 56.179 9332.447 23 1048576 80.862 12967.468 23 1048576 111.247 9425.651 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 12351.328 159.783 20742.371 8426.760 399.458 13359.152 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 24 4 0.021 188.508 24 4 0.011 364.722 24 8 0.011 729.444 24 8 0.010 798.915 24 16 0.011 1458.888 24 16 0.009 1766.023 24 32 0.012 2684.355 24 32 0.011 2917.777 24 64 0.013 4880.645 24 64 0.012 5263.440 24 128 0.017 7561.562 24 128 0.017 7456.540 24 256 0.025 10226.113 24 256 0.029 8873.899 24 512 0.031 16519.105 24 512 0.051 10034.970 24 1024 0.054 19004.280 24 1024 0.080 12782.641 24 2048 0.099 20698.638 24 2048 0.143 14340.458 24 4096 0.189 21691.754 24 4096 0.275 14900.147 24 8192 0.373 21969.142 24 8192 0.532 15401.048 24 16384 0.745 21990.233 24 16384 1.044 15692.961 24 32768 1.675 19561.479 24 32768 2.269 14441.416 24 65536 3.429 19112.634 24 65536 4.490 14596.320 24 131072 6.837 19171.287 24 131072 9.079 14436.865 24 262144 20.597 12727.302 24 262144 22.257 11778.000 24 524288 41.149 12741.166 24 524288 45.158 11610.103 24 1048576 82.274 12744.932 24 1048576 91.133 11505.982 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 12929.551 188.508 21990.233 9945.380 364.722 15692.961 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 25 4 0.018 220.753 25 4 0.010 399.458 25 8 0.010 798.915 25 8 0.010 798.915 25 16 0.012 1315.860 25 16 0.009 1766.023 25 32 0.012 2684.355 25 32 0.010 3195.660 25 64 0.015 4260.880 25 64 0.013 4971.027 25 128 0.020 6391.320 25 128 0.019 6710.886 25 256 0.028 9177.281 25 256 0.032 7953.643 25 512 0.038 13506.186 25 512 0.060 8521.761 25 1024 0.063 16268.816 25 1024 0.103 9942.054 25 2048 0.117 17494.775 25 2048 0.188 10900.932 25 4096 0.223 18374.192 25 4096 0.337 12149.837 25 8192 0.407 20116.943 25 8192 0.636 12883.291 25 16384 0.794 20630.284 25 16384 1.278 12820.798 25 32768 1.805 18153.342 25 32768 2.780 11787.217 25 65536 3.649 17960.007 25 65536 5.500 11915.467 25 131072 7.372 17779.367 25 131072 11.067 11843.336 25 262144 21.065 12444.531 25 262144 24.673 10624.738 25 524288 42.273 12402.419 25 524288 52.212 10041.523 25 1048576 91.365 11476.768 25 1048576 99.468 10541.843 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 11655.631 220.753 20630.284 8408.864 399.458 12883.291 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 26 4 0.024 166.111 26 4 0.010 399.458 26 8 0.012 657.930 26 8 0.010 798.915 26 16 0.013 1242.757 26 16 0.009 1766.023 26 32 0.013 2440.322 26 32 0.011 2917.777 26 64 0.015 4260.880 26 64 0.013 4880.645 26 128 0.019 6710.886 26 128 0.018 7158.279 26 256 0.027 9502.140 26 256 0.032 8012.999 26 512 0.033 15449.523 26 512 0.057 8985.287 26 1024 0.058 17602.325 26 1024 0.097 10552.745 26 2048 0.108 18962.328 26 2048 0.174 11767.034 26 4096 0.206 19884.108 26 4096 0.332 12341.860 26 8192 0.408 20081.671 26 8192 0.714 11476.199 26 16384 0.811 20205.668 26 16384 1.291 12692.921 26 32768 1.794 18264.313 26 32768 2.746 11932.536 26 65536 3.631 18048.451 26 65536 5.627 11646.875 26 131072 7.469 17548.945 26 131072 10.950 11969.949 26 262144 21.821 12013.369 26 262144 25.581 10247.557 26 524288 43.183 12141.049 26 524288 51.114 10257.212 26 1048576 86.641 12102.528 26 1048576 101.005 10381.443 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 11962.384 166.111 20205.668 8430.827 399.458 12692.921 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 27 4 0.024 167.772 27 4 0.011 364.722 27 8 0.012 657.930 27 8 0.010 798.915 27 16 0.013 1242.757 27 16 0.010 1597.830 27 32 0.013 2485.513 27 32 0.011 2855.696 27 64 0.016 4006.499 27 64 0.014 4549.753 27 128 0.020 6391.320 27 128 0.020 6391.320 27 256 0.031 8259.552 27 256 0.034 7508.684 27 512 0.038 13506.186 27 512 0.066 7780.738 27 1024 0.063 16268.816 27 1024 0.115 8892.272 27 2048 0.121 16942.672 27 2048 0.201 10177.648 27 4096 0.217 18878.977 27 4096 0.353 11600.182 27 8192 0.416 19690.394 27 8192 0.689 11889.183 27 16384 0.850 19270.745 27 16384 1.354 12100.630 27 32768 1.881 17419.386 27 32768 3.001 10919.119 27 65536 3.735 17546.145 27 65536 6.047 10837.752 27 131072 7.809 16784.900 27 131072 11.728 11175.943 27 262144 21.940 11948.226 27 262144 26.000 10082.453 27 524288 44.649 11742.465 27 524288 52.908 9909.394 27 1048576 89.502 11715.659 27 1048576 105.073 9979.502 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 11311.890 167.772 19690.394 7863.776 364.722 12100.630 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 28 4 0.023 174.763 28 4 0.010 399.458 28 8 0.011 729.444 28 8 0.010 798.915 28 16 0.013 1220.161 28 16 0.009 1813.753 28 32 0.013 2485.513 28 32 0.010 3195.660 28 64 0.015 4260.880 28 64 0.013 4880.645 28 128 0.017 7561.562 28 128 0.018 7158.279 28 256 0.027 9502.140 28 256 0.030 8521.761 28 512 0.036 14221.746 28 512 0.056 9138.228 28 1024 0.060 17043.521 28 1024 0.107 9565.629 28 2048 0.111 18472.978 28 2048 0.185 11069.503 28 4096 0.221 18532.761 28 4096 0.417 9822.681 28 8192 0.429 19088.744 28 8192 0.701 11686.986 28 16384 0.832 19690.394 28 16384 1.323 12384.119 28 32768 1.924 17030.849 28 32768 2.852 11489.630 28 65536 3.843 17053.037 28 65536 5.550 11807.977 28 131072 7.802 16799.774 28 131072 11.567 11331.433 28 262144 24.179 10841.813 28 262144 25.733 10187.077 28 524288 45.519 11518.035 28 524288 50.578 10365.906 28 1048576 91.059 11515.351 28 1048576 101.704 10310.088 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 11460.182 174.763 19690.394 8206.723 399.458 12384.119 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 29 4 0.024 166.111 29 4 0.010 399.458 29 8 0.012 657.930 29 8 0.010 818.401 29 16 0.013 1242.757 29 16 0.009 1766.023 29 32 0.014 2274.877 29 32 0.011 2917.777 29 64 0.015 4260.880 29 64 0.013 4880.645 29 128 0.020 6391.320 29 128 0.019 6710.886 29 256 0.028 9177.281 29 256 0.032 7953.643 29 512 0.036 14221.746 29 512 0.059 8694.266 29 1024 0.062 16519.105 29 1024 0.114 8985.287 29 2048 0.115 17821.441 29 2048 0.201 10189.721 29 4096 0.281 14583.930 29 4096 0.454 9023.041 29 8192 0.440 18623.164 29 8192 0.722 11343.591 29 16384 0.882 18577.853 29 16384 1.745 9389.189 29 32768 1.881 17421.594 29 32768 3.125 10485.920 29 65536 3.908 16770.051 29 65536 6.044 10843.310 29 131072 8.458 15496.993 29 131072 12.510 10477.327 29 262144 22.948 11423.497 29 262144 27.385 9572.541 29 524288 46.133 11364.696 29 524288 54.537 9613.469 29 1048576 92.253 11366.312 29 1048576 110.313 9505.446 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 10966.397 166.111 18623.164 7556.313 399.458 11343.591 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 30 4 0.024 166.111 30 4 0.010 399.458 30 8 0.015 532.610 30 8 0.010 798.915 30 16 0.012 1315.860 30 16 0.009 1766.023 30 32 0.013 2485.513 30 32 0.011 2855.696 30 64 0.014 4628.198 30 64 0.013 4971.027 30 128 0.019 6710.886 30 128 0.019 6710.886 30 256 0.028 9177.281 30 256 0.030 8589.935 30 512 0.037 13854.733 30 512 0.055 9296.466 30 1024 0.062 16519.105 30 1024 0.116 8819.235 30 2048 0.115 17821.441 30 2048 0.215 9523.209 30 4096 0.218 18796.356 30 4096 0.415 9867.817 30 8192 0.443 18492.862 30 8192 0.737 11116.059 30 16384 1.114 14708.792 30 16384 1.442 11362.347 30 32768 2.045 16024.129 30 32768 3.009 10889.704 30 65536 4.196 15618.063 30 65536 6.098 10747.074 30 131072 8.767 14950.799 30 131072 13.585 9648.224 30 262144 25.700 10200.214 30 262144 27.417 9561.303 30 524288 50.640 10353.217 30 524288 55.883 9381.899 30 1048576 101.566 10324.077 30 1048576 114.955 9121.626 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 10667.381 166.111 18796.356 7654.047 399.458 11362.347 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 31 4 0.016 250.406 31 4 0.010 399.458 31 8 0.012 671.089 31 8 0.010 798.915 31 16 0.012 1342.177 31 16 0.011 1458.888 31 32 0.013 2440.322 31 32 0.011 2855.696 31 64 0.015 4260.880 31 64 0.013 4971.027 31 128 0.020 6391.320 31 128 0.020 6468.324 31 256 0.030 8521.761 31 256 0.031 8259.552 31 512 0.036 14221.746 31 512 0.052 9850.842 31 1024 0.062 16519.105 31 1024 0.102 10034.970 31 2048 0.115 17784.544 31 2048 0.247 8291.443 31 4096 0.236 17353.403 31 4096 0.490 8360.034 31 8192 0.481 17035.071 31 8192 0.831 9856.494 31 16384 0.886 18492.862 31 16384 1.553 10549.505 31 32768 1.924 17030.849 31 32768 3.169 10339.975 31 65536 4.190 15641.169 31 65536 6.297 10407.705 31 131072 8.145 16092.141 31 131072 13.036 10054.608 31 262144 24.499 10700.114 31 262144 28.732 9123.745 31 524288 48.156 10887.278 31 524288 57.682 9089.277 31 1048576 96.838 10828.146 31 1048576 115.342 9091.024 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 10866.547 250.406 18492.862 7382.183 399.458 10549.505 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 32 4 0.007 559.241 32 4 0.006 671.089 32 8 0.007 1157.049 32 8 0.007 1157.049 32 16 0.008 2033.602 32 16 0.008 1973.790 32 32 0.009 3532.045 32 32 0.009 3627.506 32 64 0.011 5835.553 32 64 0.010 6391.320 32 128 0.018 7158.279 32 128 0.011 11671.107 32 256 0.040 6391.320 32 256 0.016 16025.997 32 512 0.053 9673.350 32 512 0.021 24403.223 32 1024 0.098 10450.042 32 1024 0.035 29217.465 32 2048 0.197 10386.862 32 2048 0.063 32537.631 32 4096 0.491 8339.742 32 4096 0.121 33818.640 32 8192 0.959 8540.825 32 8192 0.237 34567.141 32 16384 1.998 8200.415 32 16384 0.519 31566.135 32 32768 4.140 7915.167 32 32768 1.704 19230.300 32 65536 8.312 7884.517 32 65536 3.465 18912.750 32 131072 16.555 7917.332 32 131072 7.070 18539.010 32 262144 32.524 8059.990 32 262144 22.458 11672.594 32 524288 64.963 8070.580 32 524288 44.686 11732.692 32 1048576 130.591 8029.471 32 1048576 89.434 11724.591 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 6849.231 559.241 10450.042 16812.633 671.089 34567.141 stats by bits per item pack: unpack: bits avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1 21138.251 182.361 36650.388 18503.705 559.241 31264.548 2 19879.778 223.696 36827.158 17074.897 399.458 28349.619 3 19715.405 441.506 34567.141 16257.279 199.729 25679.924 4 19418.888 172.961 35922.361 16419.970 493.448 27054.912 5 18166.086 172.961 31038.607 14249.978 399.458 22784.972 6 17931.502 310.689 32141.944 13879.126 125.203 22369.621 7 17295.700 199.729 30569.162 13393.856 364.722 21235.932 8 18406.310 441.506 33851.959 15521.215 182.361 24455.330 9 16691.003 180.400 28443.492 12548.115 399.458 19368.511 10 14567.005 409.200 26010.400 11884.187 159.783 18658.560 11 16088.349 166.111 27312.988 11953.277 399.458 18237.653 12 14143.700 220.753 27531.842 10598.856 441.506 18122.225 13 14796.867 153.919 26089.399 11197.457 356.962 17340.267 14 15105.946 174.763 25451.658 11314.253 399.458 17283.571 15 13790.724 152.520 25052.671 10737.662 364.722 16284.236 16 15889.277 399.458 30447.265 14032.730 199.729 25208.906 17 13502.379 159.783 23844.371 10407.610 364.722 16033.476 18 13717.006 166.111 23852.647 10305.840 399.458 15907.286 19 12730.507 399.458 23239.593 9454.886 159.783 15183.269 20 12864.147 174.763 23075.714 9823.319 399.458 15484.335 21 12907.198 182.361 22174.726 9438.820 399.458 13905.196 22 12805.812 220.753 21732.915 9403.687 399.458 14076.091 23 12351.328 159.783 20742.371 8426.760 399.458 13359.152 24 12929.551 188.508 21990.233 9945.380 364.722 15692.961 25 11655.631 220.753 20630.284 8408.864 399.458 12883.291 26 11962.384 166.111 20205.668 8430.827 399.458 12692.921 27 11311.890 167.772 19690.394 7863.776 364.722 12100.630 28 11460.182 174.763 19690.394 8206.723 399.458 12384.119 29 10966.397 166.111 18623.164 7556.313 399.458 11343.591 30 10667.381 166.111 18796.356 7654.047 399.458 11362.347 31 10866.547 250.406 18492.862 7382.183 399.458 10549.505 32 6849.231 559.241 10450.042 16812.633 671.089 34567.141 stats by size pack: unpack: size(B) avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4 235.166 152.520 559.241 367.618 125.203 671.089 8 708.471 532.610 1157.049 796.776 671.089 1157.049 16 1311.141 1137.438 2033.602 1775.696 1342.177 2033.602 32 2505.588 2003.250 3532.045 3118.084 2440.322 4067.204 64 4453.077 2767.376 5835.553 5321.976 1826.092 6391.320 128 7069.515 4260.880 8521.761 7873.895 4400.581 11671.107 256 9894.164 5450.466 12782.641 10085.542 5592.405 16025.997 512 17112.561 9673.350 24403.223 13135.870 7642.291 24403.223 1024 20613.930 10450.042 28443.492 15440.209 8819.235 29217.465 2048 22984.695 10386.862 34087.042 16976.775 7528.426 32537.631 4096 23714.224 8339.742 34989.550 17185.504 8360.034 33818.640 8192 24535.275 8540.825 36398.028 17900.292 9856.494 34567.141 16384 24601.742 8200.415 36827.158 17842.541 9389.189 31566.135 32768 22384.144 7915.167 35422.411 16970.629 10339.975 29845.593 65536 22001.490 7884.517 33640.669 16756.324 10407.705 28986.387 131072 21773.944 7917.332 32435.885 16629.456 9648.224 27300.780 262144 17270.094 8059.990 30584.468 14980.486 9123.745 27420.610 524288 15798.945 8070.580 24242.347 13039.167 9089.277 17906.043 1048576 15684.175 8029.471 23956.459 12949.297 9091.024 17614.239 real 0m9.949s user 0m9.905s sys 0m0.029s ================================================ FILE: benchmark/PackedArraySelfBench-reference-galaxy-note-cortex-a9-1.4GHz.txt ================================================ -- PackedArray self bench ------------------------------------------------------ memcpy: bits size (B) time (µs) speed (B/µs) 32 4 0.040 99.864 32 8 0.031 258.111 32 16 0.030 532.610 32 32 0.059 543.392 32 64 0.070 916.162 32 128 0.084 1525.201 32 256 0.175 1462.864 32 512 0.174 2945.794 32 1024 0.300 3414.123 32 2048 0.541 3785.780 32 4096 1.037 3950.303 32 8192 1.996 4104.125 32 16384 3.967 4130.273 32 32768 9.038 3625.592 32 65536 26.889 2437.293 32 131072 54.318 2413.051 32 262144 153.667 1705.923 32 524288 507.588 1032.900 32 1048576 1421.189 737.816 avg (B/µs) min (B/µs) max (B/µs) 2085.325 99.864 4130.273 loopcpy: bits size (B) time (µs) speed (B/µs) 32 4 0.007 578.525 32 8 0.011 729.444 32 16 0.015 1065.220 32 32 0.024 1342.177 32 64 0.046 1390.857 32 128 0.097 1319.093 32 256 0.181 1414.680 32 512 0.351 1458.888 32 1024 0.688 1488.208 32 2048 1.364 1501.474 32 4096 2.747 1491.049 32 8192 5.440 1505.883 32 16384 10.876 1506.444 32 32768 25.778 1271.170 32 65536 63.447 1032.925 32 131072 133.279 983.440 32 262144 280.941 933.093 32 524288 708.055 740.462 32 1048576 1623.452 645.893 avg (B/µs) min (B/µs) max (B/µs) 1178.891 578.525 1506.444 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 1 4 0.028 142.180 1 4 0.023 172.961 1 8 0.032 250.406 1 8 0.028 286.790 1 16 0.042 379.146 1 16 0.036 444.430 1 32 0.062 516.222 1 32 0.053 604.584 1 64 0.102 627.186 1 64 0.086 743.589 1 128 0.190 674.461 1 128 0.162 790.679 1 256 0.370 691.844 1 256 0.332 770.813 1 512 0.770 664.856 1 512 0.618 828.504 1 1024 1.444 709.092 1 1024 1.203 851.163 1 2048 2.898 706.700 1 2048 2.362 867.057 1 4096 5.761 710.999 1 4096 4.724 867.057 1 8192 11.525 710.793 1 8192 9.431 868.613 1 16384 23.024 711.603 1 16384 18.861 868.668 1 32768 59.174 553.758 1 32768 38.033 861.567 1 65536 132.857 493.282 1 65536 76.122 860.933 1 131072 261.248 501.715 1 131072 152.276 860.753 1 262144 528.009 496.476 1 262144 302.381 866.933 1 524288 1124.733 466.144 1 524288 605.052 866.517 1 1048576 2292.926 457.309 1 1048576 1233.963 849.763 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 550.746 142.180 711.603 743.757 172.961 868.668 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 2 4 0.028 142.180 2 4 0.024 166.111 2 8 0.032 250.406 2 8 0.028 284.360 2 16 0.042 381.300 2 16 0.036 444.430 2 32 0.063 508.400 2 32 0.053 604.584 2 64 0.103 621.378 2 64 0.086 745.654 2 128 0.248 516.222 2 128 0.175 731.432 2 256 0.427 599.521 2 256 0.352 727.467 2 512 0.870 588.513 2 512 0.705 726.237 2 1024 1.732 591.186 2 1024 1.443 709.677 2 2048 3.460 591.919 2 2048 2.852 718.102 2 4096 7.079 578.603 2 4096 5.683 720.723 2 8192 13.719 597.135 2 8192 11.355 721.434 2 16384 27.371 598.591 2 16384 22.698 721.828 2 32768 74.627 439.091 2 32768 46.076 711.176 2 65536 157.986 414.822 2 65536 92.486 708.605 2 131072 295.276 443.897 2 131072 183.328 714.959 2 262144 569.330 460.443 2 262144 366.934 714.417 2 524288 1240.845 422.525 2 524288 740.325 708.186 2 1048576 2434.783 430.665 2 1048576 1509.616 694.598 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 482.989 142.180 621.378 645.999 166.111 745.654 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 3 4 0.028 143.395 3 4 0.024 166.111 3 8 0.032 248.551 3 8 0.028 286.790 3 16 0.041 390.168 3 16 0.036 444.430 3 32 0.062 516.222 3 32 0.052 615.678 3 64 0.137 467.658 3 64 0.129 496.184 3 128 0.249 513.752 3 128 0.247 518.215 3 256 0.501 510.819 3 256 0.437 585.784 3 512 1.040 492.316 3 512 0.989 517.715 3 1024 2.050 499.531 3 1024 1.770 578.525 3 2048 4.072 502.953 3 2048 3.543 578.019 3 4096 8.160 501.968 3 4096 7.155 572.471 3 8192 16.336 501.470 3 8192 15.476 529.336 3 16384 33.288 492.189 3 16384 29.413 557.033 3 32768 79.522 412.061 3 32768 60.820 538.771 3 65536 163.928 399.786 3 65536 125.385 522.678 3 131072 326.008 402.051 3 131072 244.282 536.560 3 262144 670.951 390.705 3 262144 488.056 537.119 3 524288 1354.440 387.088 3 524288 978.178 535.984 3 1048576 2738.226 382.940 3 1048576 1967.548 532.935 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 429.243 143.395 516.222 507.913 166.111 615.678 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 4 4 0.027 148.471 4 4 0.024 166.111 4 8 0.032 250.406 4 8 0.028 284.360 4 16 0.042 381.300 4 16 0.036 444.430 4 32 0.061 524.288 4 32 0.052 615.678 4 64 0.130 491.640 4 64 0.108 592.573 4 128 0.242 528.937 4 128 0.194 660.358 4 256 0.440 581.974 4 256 0.350 731.432 4 512 0.854 599.688 4 512 0.650 787.778 4 1024 1.715 597.104 4 1024 1.250 819.181 4 2048 3.352 610.948 4 2048 2.451 835.515 4 4096 6.658 615.193 4 4096 4.859 842.977 4 8192 13.369 612.757 4 8192 9.673 846.904 4 16384 31.199 525.145 4 16384 19.498 840.297 4 32768 73.321 446.911 4 32768 39.397 831.738 4 65536 185.543 353.212 4 65536 80.764 811.450 4 131072 313.806 417.685 4 131072 162.272 807.729 4 262144 647.367 404.939 4 262144 321.712 814.841 4 524288 1378.504 380.331 4 524288 649.453 807.276 4 1048576 2714.458 386.293 4 1048576 1315.893 796.855 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 466.170 148.471 615.193 701.973 166.111 846.904 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 5 4 0.027 148.471 5 4 0.024 167.772 5 8 0.032 250.406 5 8 0.028 286.790 5 16 0.042 381.300 5 16 0.036 444.430 5 32 0.072 444.430 5 32 0.061 524.288 5 64 0.129 496.184 5 64 0.112 572.357 5 128 0.246 520.224 5 128 0.222 576.660 5 256 0.480 533.404 5 256 0.464 551.485 5 512 1.010 506.960 5 512 0.814 629.023 5 1024 2.006 510.455 5 1024 1.687 606.977 5 2048 4.014 510.212 5 2048 3.231 633.850 5 4096 7.603 538.740 5 4096 6.402 639.798 5 8192 15.585 525.635 5 8192 12.856 637.212 5 16384 31.057 527.548 5 16384 25.498 642.562 5 32768 72.103 454.461 5 32768 53.089 617.229 5 65536 154.698 423.638 5 65536 104.520 627.018 5 131072 318.041 412.123 5 131072 213.301 614.493 5 262144 664.300 394.617 5 262144 435.763 601.575 5 524288 1328.126 394.758 5 524288 883.241 593.596 5 1048576 2713.223 386.469 5 1048576 1765.400 593.959 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 440.002 148.471 538.740 555.846 167.772 642.562 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 6 4 0.027 148.471 6 4 0.024 167.772 6 8 0.032 250.406 6 8 0.028 284.360 6 16 0.042 381.300 6 16 0.036 444.430 6 32 0.071 450.395 6 32 0.062 516.222 6 64 0.143 448.139 6 64 0.152 421.406 6 128 0.281 455.361 6 128 0.218 586.744 6 256 0.526 486.516 6 256 0.411 622.820 6 512 1.033 495.726 6 512 0.797 642.574 6 1024 2.036 502.924 6 1024 1.571 651.839 6 2048 3.841 533.205 6 2048 3.117 657.024 6 4096 7.972 513.798 6 4096 6.275 652.731 6 8192 15.317 534.832 6 8192 12.553 652.594 6 16384 31.299 523.469 6 16384 25.527 641.830 6 32768 75.107 436.284 6 32768 52.328 626.203 6 65536 159.703 410.362 6 65536 107.357 610.449 6 131072 326.247 401.757 6 131072 214.884 609.966 6 262144 674.367 388.726 6 262144 431.315 607.779 6 524288 1371.837 382.179 6 524288 898.056 583.803 6 1048576 2788.639 376.017 6 1048576 1773.144 591.365 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 427.361 148.471 534.832 556.416 167.772 657.024 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 7 4 0.027 148.471 7 4 0.023 172.961 7 8 0.032 248.551 7 8 0.027 296.942 7 16 0.042 381.300 7 16 0.036 444.430 7 32 0.071 451.912 7 32 0.061 524.288 7 64 0.139 460.438 7 64 0.120 533.669 7 128 0.272 470.527 7 128 0.238 537.947 7 256 0.514 498.025 7 256 0.447 572.662 7 512 0.997 513.629 7 512 0.897 570.836 7 1024 1.964 521.360 7 1024 1.681 609.129 7 2048 3.914 523.234 7 2048 3.343 612.648 7 4096 7.780 526.473 7 4096 6.650 615.943 7 8192 15.546 526.949 7 8192 13.238 618.827 7 16384 31.157 525.853 7 16384 26.468 619.011 7 32768 77.767 421.362 7 32768 55.826 586.965 7 65536 162.203 404.037 7 65536 112.327 583.439 7 131072 329.310 398.020 7 131072 224.992 582.563 7 262144 675.067 388.323 7 262144 454.650 576.584 7 524288 1356.431 386.520 7 524288 905.142 579.233 7 1048576 2788.174 376.080 7 1048576 1836.669 570.912 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 430.056 148.471 526.949 537.315 172.961 619.011 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 8 4 0.027 147.169 8 4 0.024 166.111 8 8 0.032 250.406 8 8 0.028 286.790 8 16 0.043 370.767 8 16 0.037 432.960 8 32 0.074 432.960 8 32 0.057 561.580 8 64 0.152 421.406 8 64 0.107 597.852 8 128 0.343 373.086 8 128 0.192 666.093 8 256 0.696 367.846 8 256 0.357 717.262 8 512 1.404 364.660 8 512 0.723 708.273 8 1024 2.817 363.518 8 1024 1.358 754.165 8 2048 5.676 360.831 8 2048 2.691 761.047 8 4096 11.328 361.582 8 4096 5.373 762.330 8 8192 22.675 361.282 8 8192 10.719 764.246 8 16384 45.507 360.031 8 16384 35.949 455.757 8 32768 105.689 310.042 8 32768 73.508 445.774 8 65536 219.619 298.408 8 65536 147.849 443.264 8 131072 449.417 291.649 8 131072 298.264 439.450 8 262144 924.340 283.601 8 262144 606.642 432.123 8 524288 1866.941 280.827 8 524288 1219.449 429.938 8 1048576 3809.050 275.285 8 1048576 2457.420 426.698 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 330.282 147.169 432.960 539.564 166.111 764.246 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 9 4 0.027 148.471 9 4 0.024 166.111 9 8 0.032 250.406 9 8 0.028 284.360 9 16 0.050 319.566 9 16 0.044 362.751 9 32 0.079 404.270 9 32 0.110 290.515 9 64 0.139 460.438 9 64 0.120 533.669 9 128 0.264 484.978 9 128 0.227 563.348 9 256 0.532 481.067 9 256 0.457 560.116 9 512 1.038 493.221 9 512 0.886 577.902 9 1024 2.070 494.698 9 1024 1.747 586.184 9 2048 4.094 500.258 9 2048 3.482 588.191 9 4096 8.146 502.821 9 4096 6.945 589.786 9 8192 16.285 503.041 9 8192 13.828 592.419 9 16384 32.660 501.653 9 16384 27.656 592.425 9 32768 78.829 415.686 9 32768 56.983 575.049 9 65536 166.058 394.657 9 65536 115.582 567.009 9 131072 336.393 389.640 9 131072 234.508 558.923 9 262144 695.427 376.954 9 262144 482.687 543.093 9 524288 1441.012 363.833 9 524288 984.754 532.405 9 1048576 2995.463 350.055 9 1048576 1989.077 527.167 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 412.406 148.471 503.041 504.812 166.111 592.425 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 10 4 0.027 148.471 10 4 0.024 166.111 10 8 0.032 248.551 10 8 0.028 284.360 10 16 0.050 319.566 10 16 0.045 355.073 10 32 0.080 399.458 10 32 0.069 462.820 10 64 0.148 432.263 10 64 0.127 503.631 10 128 0.292 438.620 10 128 0.249 514.244 10 256 0.567 451.531 10 256 0.537 476.583 10 512 1.113 459.945 10 512 1.071 478.068 10 1024 2.275 450.112 10 1024 2.137 479.189 10 2048 4.593 445.883 10 2048 3.887 526.861 10 4096 8.797 465.617 10 4096 8.059 508.250 10 8192 18.097 452.668 10 8192 16.323 501.866 10 16384 35.170 465.851 10 16384 30.733 533.110 10 32768 82.841 395.552 10 32768 63.966 512.272 10 65536 181.205 361.668 10 65536 131.599 497.998 10 131072 369.536 354.693 10 131072 276.603 473.863 10 262144 753.497 347.903 10 262144 558.171 469.648 10 524288 1543.067 339.770 10 524288 1120.836 467.765 10 1048576 3121.365 335.935 10 1048576 2235.060 469.149 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 384.950 148.471 465.851 456.887 166.111 533.110 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 11 4 0.028 143.395 11 4 0.024 166.111 11 8 0.032 250.406 11 8 0.028 284.360 11 16 0.051 313.593 11 16 0.044 362.751 11 32 0.080 400.650 11 32 0.070 456.523 11 64 0.158 404.880 11 64 0.137 467.658 11 128 0.282 454.206 11 128 0.245 522.248 11 256 0.550 465.428 11 256 0.521 491.415 11 512 1.085 471.871 11 512 0.936 546.990 11 1024 2.155 475.160 11 1024 1.871 547.269 11 2048 4.312 474.949 11 2048 3.695 554.261 11 4096 8.647 473.692 11 4096 7.412 552.603 11 8192 17.194 476.451 11 8192 14.780 554.261 11 16384 34.489 475.048 11 16384 29.561 554.243 11 32768 84.147 389.414 11 32768 61.986 528.636 11 65536 176.207 371.926 11 65536 125.048 524.087 11 131072 355.282 368.924 11 131072 253.796 516.447 11 262144 730.218 358.994 11 262144 521.920 502.269 11 524288 1499.195 349.713 11 524288 1042.684 502.825 11 1048576 3053.177 343.438 11 1048576 2123.053 493.900 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 392.744 143.395 476.451 480.466 166.111 554.261 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 12 4 0.027 148.471 12 4 0.023 174.763 12 8 0.077 103.884 12 8 0.028 286.790 12 16 0.051 313.593 12 16 0.044 364.722 12 32 0.080 400.650 12 32 0.069 464.421 12 64 0.149 429.497 12 64 0.124 516.222 12 128 0.296 432.612 12 128 0.241 531.030 12 256 0.573 446.648 12 256 0.458 558.949 12 512 1.127 454.302 12 512 0.891 574.654 12 1024 2.249 455.313 12 1024 1.758 582.447 12 2048 4.463 458.889 12 2048 3.506 584.151 12 4096 8.903 460.068 12 4096 6.973 587.406 12 8192 17.786 460.586 12 8192 13.920 588.513 12 16384 35.660 459.450 12 16384 27.863 588.019 12 32768 87.739 373.471 12 32768 59.227 553.261 12 65536 180.370 363.342 12 65536 117.515 557.683 12 131072 374.371 350.113 12 131072 244.037 537.099 12 262144 761.873 344.078 12 262144 498.279 526.099 12 524288 1589.415 329.862 12 524288 1007.657 520.304 12 1048576 3165.338 331.268 12 1048576 2045.421 512.646 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 374.531 103.884 460.586 505.746 174.763 588.513 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 13 4 0.027 147.169 13 4 0.024 166.111 13 8 0.032 250.406 13 8 0.028 286.790 13 16 0.052 307.839 13 16 0.044 362.751 13 32 0.089 359.833 13 32 0.079 405.492 13 64 0.168 381.300 13 64 0.148 432.960 13 128 0.301 425.413 13 128 0.310 412.660 13 256 0.595 430.357 13 256 0.529 483.885 13 512 1.167 438.710 13 512 1.027 498.603 13 1024 2.328 439.878 13 1024 2.031 504.163 13 2048 4.614 443.855 13 2048 4.052 505.409 13 4096 9.201 445.167 13 4096 8.066 507.814 13 8192 18.376 445.802 13 8192 16.122 508.122 13 16384 36.851 444.602 13 16384 32.233 508.299 13 32768 86.276 379.804 13 32768 65.877 497.412 13 65536 184.266 355.660 13 65536 137.608 476.251 13 131072 377.979 346.771 13 131072 281.963 464.855 13 262144 775.557 338.007 13 262144 571.420 458.759 13 524288 1567.158 334.547 13 524288 1153.972 454.333 13 1048576 3211.252 326.532 13 1048576 2337.650 448.560 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 370.613 147.169 445.802 441.223 166.111 508.299 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 14 4 0.049 81.840 14 4 0.024 166.111 14 8 0.032 248.551 14 8 0.028 286.790 14 16 0.051 313.593 14 16 0.044 362.751 14 32 0.089 358.871 14 32 0.080 399.458 14 64 0.166 385.683 14 64 0.148 432.263 14 128 0.372 344.148 14 128 0.281 455.361 14 256 0.618 414.252 14 256 0.546 468.883 14 512 1.222 419.021 14 512 1.077 475.423 14 1024 2.451 417.798 14 1024 2.153 475.580 14 2048 4.858 421.571 14 2048 4.276 478.948 14 4096 9.702 422.182 14 4096 8.534 479.965 14 8192 19.382 422.660 14 8192 17.025 481.175 14 16384 41.811 391.856 14 16384 35.310 464.004 14 32768 94.553 346.557 14 32768 73.436 446.212 14 65536 192.197 340.983 14 65536 145.856 449.320 14 131072 398.109 329.236 14 131072 297.112 441.154 14 262144 800.052 327.659 14 262144 612.519 427.977 14 524288 1656.111 316.578 14 524288 1215.195 431.444 14 1048576 3395.632 308.801 14 1048576 2461.814 425.936 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 347.992 81.840 422.660 423.619 166.111 481.175 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 15 4 0.027 147.169 15 4 0.023 172.961 15 8 0.032 250.406 15 8 0.028 284.360 15 16 0.051 313.593 15 16 0.044 362.751 15 32 0.089 358.871 15 32 0.080 399.458 15 64 0.176 363.734 15 64 0.159 403.056 15 128 0.337 379.682 15 128 0.307 416.825 15 256 0.703 364.104 15 256 0.617 414.893 15 512 1.307 391.734 15 512 1.184 432.437 15 1024 2.618 391.127 15 1024 2.355 434.845 15 2048 5.204 393.546 15 2048 4.727 433.266 15 4096 10.817 378.661 15 4096 9.412 435.198 15 8192 20.774 394.341 15 8192 18.802 435.700 15 16384 45.634 359.030 15 16384 37.808 433.348 15 32768 97.320 336.703 15 32768 76.654 427.480 15 65536 206.004 318.130 15 65536 166.579 393.423 15 131072 439.183 298.445 15 131072 334.910 391.365 15 262144 883.446 296.729 15 262144 671.977 390.109 15 524288 1752.094 299.235 15 524288 1389.827 377.233 15 1048576 3629.525 288.902 15 1048576 2813.436 372.703 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 332.850 147.169 394.341 390.074 172.961 435.700 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 16 4 0.027 148.471 16 4 0.024 166.111 16 8 0.033 241.399 16 8 0.028 286.790 16 16 0.053 302.292 16 16 0.041 390.168 16 32 0.095 337.230 16 32 0.065 493.448 16 64 0.196 326.564 16 64 0.125 512.281 16 128 0.400 319.947 16 128 0.225 569.322 16 256 0.686 373.216 16 256 0.425 602.211 16 512 1.353 378.411 16 512 0.824 621.378 16 1024 2.704 378.712 16 1024 1.625 630.130 16 2048 5.369 381.436 16 2048 3.244 631.288 16 4096 10.719 382.123 16 4096 6.441 635.938 16 8192 21.484 381.309 16 8192 12.862 636.917 16 16384 45.794 357.776 16 16384 27.145 603.570 16 32768 97.704 335.381 16 32768 56.261 582.428 16 65536 198.565 330.048 16 65536 113.527 577.272 16 131072 410.590 319.228 16 131072 237.846 551.079 16 262144 848.678 308.885 16 262144 495.421 529.134 16 524288 1773.609 295.605 16 524288 980.672 534.621 16 1048576 3633.086 288.619 16 1048576 2047.533 512.117 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 325.613 148.471 382.123 529.800 166.111 636.917 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 17 4 0.027 148.471 17 4 0.024 167.772 17 8 0.040 199.729 17 8 0.036 222.215 17 16 0.060 266.305 17 16 0.054 295.634 17 32 0.116 275.601 17 32 0.100 319.566 17 64 0.185 345.922 17 64 0.169 378.611 17 128 0.346 370.001 17 128 0.316 405.186 17 256 0.677 378.211 17 256 0.616 415.535 17 512 1.384 369.937 17 512 1.226 417.636 17 1024 2.656 385.545 17 1024 2.439 419.840 17 2048 5.320 384.974 17 2048 4.835 423.588 17 4096 10.608 386.117 17 4096 9.676 423.316 17 8192 21.248 385.540 17 8192 19.386 422.572 17 16384 46.420 352.952 17 16384 40.097 408.609 17 32768 102.066 321.047 17 32768 83.305 393.350 17 65536 209.956 312.141 17 65536 167.563 391.113 17 131072 427.847 306.353 17 131072 343.686 381.371 17 262144 908.352 288.593 17 262144 707.077 370.743 17 524288 1795.719 291.965 17 524288 1406.420 372.782 17 1048576 3863.758 271.388 17 1048576 2973.009 352.699 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 317.936 148.471 386.117 367.481 167.772 423.588 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 18 4 0.028 143.395 18 4 0.024 167.772 18 8 0.040 200.925 18 8 0.036 222.215 18 16 0.060 266.305 18 16 0.054 295.634 18 32 0.107 298.926 18 32 0.099 323.416 18 64 0.223 287.097 18 64 0.158 404.880 18 128 0.352 363.734 18 128 0.323 396.507 18 256 0.680 376.487 18 256 0.599 427.445 18 512 1.334 383.822 18 512 1.170 437.548 18 1024 2.721 376.322 18 1024 2.385 429.368 18 2048 5.434 376.884 18 2048 4.590 446.184 18 4096 10.528 389.063 18 4096 9.327 439.158 18 8192 21.903 374.012 18 8192 19.039 430.277 18 16384 47.136 347.589 18 16384 41.895 391.074 18 32768 154.118 212.616 18 32768 120.635 271.629 18 65536 319.429 205.166 18 65536 246.459 265.911 18 131072 652.839 200.772 18 131072 502.422 260.880 18 262144 1270.269 206.369 18 262144 700.378 374.289 18 524288 1854.511 282.710 18 524288 1382.160 379.325 18 1048576 3856.875 271.872 18 1048576 2920.427 359.049 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 292.846 143.395 389.063 353.819 167.772 446.184 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 19 4 0.027 148.471 19 4 0.024 167.772 19 8 0.040 199.729 19 8 0.037 216.480 19 16 0.060 267.366 19 16 0.054 296.942 19 32 0.099 323.416 19 32 0.088 363.734 19 64 0.201 318.429 19 64 0.177 361.773 19 128 0.352 363.734 19 128 0.322 397.682 19 256 0.699 366.215 19 256 0.639 400.650 19 512 1.421 360.316 19 512 1.260 406.412 19 1024 2.734 374.550 19 1024 2.517 406.836 19 2048 5.482 373.589 19 2048 5.009 408.850 19 4096 10.923 374.992 19 4096 9.958 411.326 19 8192 21.919 373.739 19 8192 19.915 411.351 19 16384 47.916 341.932 19 16384 41.043 399.191 19 32768 102.724 318.990 19 32768 83.204 393.827 19 65536 216.275 303.022 19 65536 174.577 375.399 19 131072 499.180 262.575 19 131072 538.821 243.257 19 262144 1350.211 194.150 19 262144 1086.020 241.380 19 524288 1960.745 267.392 19 524288 1459.070 359.330 19 1048576 4047.321 259.079 19 1048576 3038.298 345.120 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 304.826 148.471 374.992 347.753 167.772 411.351 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 20 4 0.028 143.395 20 4 0.023 174.763 20 8 0.040 199.729 20 8 0.037 216.480 20 16 0.060 266.305 20 16 0.054 295.634 20 32 0.098 326.564 20 32 0.088 363.734 20 64 0.185 345.922 20 64 0.161 397.682 20 128 0.368 347.940 20 128 0.314 407.647 20 256 0.715 358.033 20 256 0.604 423.901 20 512 1.459 350.953 20 512 1.185 432.089 20 1024 6.008 170.442 20 1024 2.393 427.913 20 2048 5.900 347.124 20 2048 4.710 434.823 20 4096 11.614 352.675 20 4096 9.447 433.583 20 8192 22.896 357.791 20 8192 18.658 439.063 20 16384 48.570 337.326 20 16384 38.565 424.842 20 32768 109.333 299.708 20 32768 91.586 357.783 20 65536 242.017 270.791 20 65536 169.082 387.599 20 131072 433.187 302.576 20 131072 335.765 390.368 20 262144 902.941 290.322 20 262144 688.019 381.013 20 524288 1848.034 283.700 20 524288 2028.705 258.435 20 1048576 4777.947 219.462 20 1048576 2871.479 365.169 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 293.198 143.395 358.033 369.080 174.763 439.063 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 21 4 0.027 148.471 21 4 0.024 166.111 21 8 0.041 195.084 21 8 0.036 222.215 21 16 0.060 266.305 21 16 0.054 295.634 21 32 0.106 302.292 21 32 0.097 329.773 21 64 0.200 319.947 21 64 0.184 347.714 21 128 0.367 348.844 21 128 0.337 379.682 21 256 0.737 347.264 21 256 0.690 371.023 21 512 1.511 338.880 21 512 1.377 371.859 21 1024 2.971 344.673 21 1024 2.845 359.954 21 2048 5.934 345.130 21 2048 5.421 377.795 21 4096 11.735 349.035 21 4096 11.178 366.434 21 8192 23.819 343.928 21 8192 21.875 374.489 21 16384 49.952 327.995 21 16384 44.256 370.210 21 32768 109.571 299.057 21 32768 93.959 348.748 21 65536 237.016 276.505 21 65536 197.783 331.353 21 131072 472.709 277.278 21 131072 395.077 331.763 21 262144 972.864 269.456 21 262144 799.140 328.033 21 524288 1989.220 263.565 21 524288 1659.688 315.896 21 1048576 5295.111 198.027 21 1048576 3928.798 266.895 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 292.723 148.471 349.035 329.241 166.111 379.682 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 22 4 0.028 142.180 22 4 0.024 166.111 22 8 0.040 199.729 22 8 0.036 222.215 22 16 0.060 266.305 22 16 0.053 302.292 22 32 0.106 302.292 22 32 0.096 333.875 22 64 0.199 321.865 22 64 0.182 351.816 22 128 0.383 334.291 22 128 0.397 322.445 22 256 0.750 341.304 22 256 0.684 374.387 22 512 1.484 344.977 22 512 1.355 377.879 22 1024 2.975 344.203 22 1024 2.711 377.746 22 2048 5.903 346.942 22 2048 5.391 379.901 22 4096 11.785 347.560 22 4096 10.770 380.313 22 8192 23.660 346.239 22 8192 21.556 380.031 22 16384 47.295 346.421 22 16384 43.140 379.787 22 32768 111.579 293.675 22 32768 89.335 366.799 22 65536 234.733 279.194 22 65536 193.843 338.088 22 131072 477.157 274.694 22 131072 389.827 336.231 22 262144 983.129 266.643 22 262144 795.484 329.540 22 524288 2083.639 251.621 22 524288 1605.246 326.609 22 1048576 4899.625 214.011 22 1048576 4128.160 254.006 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 292.850 142.180 347.560 331.583 166.111 380.313 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 23 4 0.027 148.471 23 4 0.023 174.763 23 8 0.040 199.729 23 8 0.036 222.215 23 16 0.059 270.600 23 16 0.053 300.937 23 32 0.106 301.613 23 32 0.095 336.385 23 64 0.206 310.689 23 64 0.192 333.046 23 128 0.383 334.083 23 128 0.352 363.487 23 256 0.749 341.738 23 256 0.731 350.209 23 512 1.484 345.033 23 512 1.365 375.106 23 1024 2.975 344.203 23 1024 2.715 377.182 23 2048 5.901 347.068 23 2048 5.444 376.191 23 4096 11.783 347.616 23 4096 10.845 377.687 23 8192 23.615 346.900 23 8192 21.678 377.895 23 16384 53.720 304.989 23 16384 47.040 348.299 23 32768 116.056 282.347 23 32768 98.340 333.211 23 65536 231.053 283.640 23 65536 192.453 340.530 23 131072 474.303 276.347 23 131072 398.017 329.312 23 262144 975.537 268.718 23 262144 856.824 305.948 23 524288 2038.172 257.234 23 524288 1623.463 322.944 23 1048576 5593.891 187.450 23 1048576 3708.592 282.742 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 289.393 148.471 347.616 327.794 174.763 377.895 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 24 4 0.027 148.471 24 4 0.024 166.111 24 8 0.040 199.729 24 8 0.036 222.215 24 16 0.060 267.366 24 16 0.053 302.292 24 32 0.120 266.834 24 32 0.090 355.073 24 64 0.227 281.674 24 64 0.174 367.720 24 128 0.421 304.004 24 128 0.324 395.049 24 256 0.808 316.831 24 256 0.677 378.078 24 512 1.581 323.855 24 512 1.225 417.961 24 1024 3.139 326.217 24 1024 2.424 422.442 24 2048 6.293 325.438 24 2048 4.845 422.712 24 4096 12.440 329.261 24 4096 9.929 412.531 24 8192 24.896 329.047 24 8192 19.286 424.766 24 16384 49.995 327.713 24 16384 38.911 421.065 24 32768 116.733 280.709 24 32768 85.712 382.304 24 65536 240.892 272.056 24 65536 174.111 376.403 24 131072 511.077 256.462 24 131072 406.178 322.696 24 262144 1023.986 256.003 24 262144 718.996 364.597 24 524288 2104.036 249.182 24 524288 1711.924 306.257 24 1048576 5627.490 186.331 24 1048576 3083.055 340.109 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 276.168 148.471 329.261 357.915 166.111 424.766 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 25 4 0.027 148.471 25 4 0.072 55.554 25 8 0.040 199.729 25 8 0.037 216.480 25 16 0.067 238.822 25 16 0.061 262.144 25 32 0.113 283.160 25 32 0.104 307.839 25 64 0.223 287.097 25 64 0.211 303.317 25 128 0.398 321.672 25 128 0.367 348.844 25 256 0.780 328.261 25 256 0.719 356.133 25 512 1.543 331.811 25 512 1.444 354.546 25 1024 3.069 333.642 25 1024 2.852 359.051 25 2048 6.138 333.667 25 2048 5.669 361.271 25 4096 12.366 331.229 25 4096 11.324 361.712 25 8192 26.490 309.249 25 8192 22.971 356.625 25 16384 50.082 327.144 25 16384 48.615 337.015 25 32768 126.387 259.267 25 32768 104.843 312.544 25 65536 259.179 252.860 25 65536 214.298 305.817 25 131072 509.653 257.179 25 131072 410.737 319.114 25 262144 981.738 267.020 25 262144 913.507 286.964 25 524288 2307.158 227.244 25 524288 1793.587 292.313 25 1048576 6100.675 171.879 25 1048576 3613.348 290.195 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 274.179 148.471 333.667 304.604 55.554 361.712 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 26 4 0.028 142.180 26 4 0.024 166.111 26 8 0.041 195.084 26 8 0.036 222.215 26 16 0.067 238.822 26 16 0.061 263.172 26 32 0.113 283.160 26 32 0.104 307.839 26 64 0.215 297.600 26 64 0.197 324.982 26 128 0.414 309.257 26 128 0.380 337.019 26 256 0.858 298.344 26 256 0.744 344.148 26 512 1.603 319.376 26 512 1.474 347.321 26 1024 3.216 318.405 26 1024 2.949 347.236 26 2048 6.378 321.095 26 2048 5.873 348.717 26 4096 12.754 321.155 26 4096 11.722 349.426 26 8192 25.775 317.828 26 8192 23.807 344.100 26 16384 51.187 320.081 26 16384 47.069 348.086 26 32768 119.095 275.141 26 32768 105.455 310.729 26 65536 252.474 259.575 26 65536 210.070 311.972 26 131072 494.875 264.859 26 131072 427.059 306.918 26 262144 1131.007 231.779 26 262144 865.921 302.734 26 524288 2079.327 252.143 26 524288 1790.277 292.853 26 1048576 6326.019 165.756 26 1048576 4403.851 238.104 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 270.086 142.180 321.155 305.983 166.111 349.426 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 27 4 0.028 142.180 27 4 0.024 166.111 27 8 0.040 200.925 27 8 0.036 222.215 27 16 0.067 238.822 27 16 0.061 262.144 27 32 0.114 280.790 27 32 0.103 310.689 27 64 0.221 289.574 27 64 0.209 306.084 27 128 0.421 304.004 27 128 0.391 327.360 27 256 0.827 309.525 27 256 0.775 330.280 27 512 1.681 304.564 27 512 1.541 332.274 27 1024 3.279 312.270 27 1024 3.028 338.186 27 2048 6.528 313.730 27 2048 6.124 334.421 27 4096 13.020 314.592 27 4096 12.097 338.600 27 8192 26.323 311.213 27 8192 24.252 337.787 27 16384 52.192 313.917 27 16384 56.338 290.816 27 32768 133.606 245.259 27 32768 105.429 310.807 27 65536 258.285 253.735 27 65536 221.327 296.105 27 131072 578.920 226.408 27 131072 449.158 291.817 27 262144 1113.770 235.366 27 262144 917.844 285.608 27 524288 2191.022 239.289 27 524288 2665.039 196.728 27 1048576 5984.111 175.227 27 1048576 4190.136 250.249 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 263.757 142.180 314.592 290.962 166.111 338.600 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 28 4 0.041 97.542 28 4 0.036 111.107 28 8 0.060 133.153 28 8 0.054 148.471 28 16 0.100 160.164 28 16 0.091 175.678 28 32 0.169 189.306 28 32 0.154 207.767 28 64 0.322 198.694 28 64 0.286 223.883 28 128 0.641 199.654 28 128 0.561 228.164 28 256 1.296 197.524 28 256 1.087 235.470 28 512 2.471 207.206 28 512 2.157 237.370 28 1024 4.931 207.667 28 1024 4.261 240.318 28 2048 9.831 208.322 28 2048 8.456 242.195 28 4096 19.819 206.670 28 4096 16.916 242.137 28 8192 39.349 208.188 28 8192 33.752 242.712 28 16384 84.191 194.605 28 16384 70.046 233.904 28 32768 186.892 175.331 28 32768 150.564 217.635 28 65536 386.572 169.531 28 65536 317.120 206.660 28 131072 788.526 166.224 28 131072 667.313 196.418 28 262144 1236.438 212.016 28 262144 853.798 307.033 28 524288 2125.018 246.722 28 524288 1749.412 299.694 28 1048576 5659.395 185.281 28 1048576 4827.618 217.204 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 187.568 97.542 246.722 221.780 111.107 307.033 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 29 4 0.028 142.180 29 4 0.024 166.111 29 8 0.040 199.729 29 8 0.036 222.215 29 16 0.067 238.822 29 16 0.062 258.111 29 32 0.139 230.219 29 32 0.123 260.112 29 64 0.238 268.973 29 64 0.228 280.790 29 128 0.473 270.600 29 128 0.490 261.124 29 256 0.955 268.100 29 256 0.890 287.635 29 512 1.871 273.669 29 512 1.771 289.107 29 1024 3.678 278.406 29 1024 5.470 187.202 29 2048 7.412 276.310 29 2048 6.992 292.902 29 4096 16.348 250.549 29 4096 13.886 294.974 29 8192 35.950 227.871 29 8192 35.452 231.074 29 16384 82.914 197.602 29 16384 60.882 269.111 29 32768 146.848 223.142 29 32768 129.609 252.822 29 65536 320.075 204.752 29 65536 307.075 213.420 29 131072 606.637 216.063 29 131072 513.774 255.116 29 262144 1142.450 229.458 29 262144 1041.882 251.606 29 524288 2476.251 211.727 29 524288 2510.966 208.799 29 1048576 6454.030 162.468 29 1048576 4416.883 237.402 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 230.034 142.180 278.406 248.402 166.111 294.974 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 30 4 0.027 147.169 30 4 0.023 172.961 30 8 0.040 199.729 30 8 0.036 222.215 30 16 0.067 238.822 30 16 0.061 262.144 30 32 0.130 246.271 30 32 0.123 260.112 30 64 0.228 280.790 30 64 0.212 301.952 30 128 0.451 283.758 30 128 0.424 301.782 30 256 0.930 275.318 30 256 0.819 312.589 30 512 1.747 293.052 30 512 1.615 317.019 30 1024 3.492 293.232 30 1024 3.383 302.676 30 2048 6.946 294.852 30 2048 7.045 290.701 30 4096 13.881 295.080 30 4096 13.335 307.162 30 8192 28.172 290.785 30 8192 26.040 314.592 30 16384 61.110 268.107 30 16384 62.479 262.232 30 32768 151.757 215.924 30 32768 141.702 231.246 30 65536 282.080 232.331 30 65536 271.728 241.182 30 131072 704.387 186.080 30 131072 737.609 177.699 30 262144 1655.627 158.335 30 262144 1419.102 184.725 30 524288 2368.359 221.372 30 524288 2007.402 261.177 30 1048576 6578.649 159.391 30 1048576 5659.983 185.261 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 241.074 147.169 295.080 258.391 172.961 317.019 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 31 4 0.027 148.471 31 4 0.023 172.961 31 8 0.040 199.729 31 8 0.036 222.215 31 16 0.067 238.822 31 16 0.061 262.144 31 32 0.130 246.271 31 32 0.171 187.193 31 64 0.237 270.056 31 64 0.222 288.330 31 128 0.442 289.574 31 128 0.412 310.689 31 256 0.878 291.619 31 256 0.838 305.474 31 512 1.737 294.741 31 512 1.636 312.953 31 1024 3.468 295.268 31 1024 3.355 305.214 31 2048 6.915 296.174 31 2048 8.280 247.342 31 4096 13.880 295.101 31 4096 15.372 266.458 31 8192 29.701 275.816 31 8192 28.933 283.136 31 16384 61.908 264.651 31 16384 56.695 288.985 31 32768 131.638 248.925 31 32768 121.715 269.219 31 65536 274.290 238.930 31 65536 243.159 269.519 31 131072 552.491 237.238 31 131072 492.722 266.016 31 262144 1131.344 231.710 31 262144 1053.673 248.791 31 524288 2799.423 187.284 31 524288 3115.128 168.304 31 1048576 5885.372 178.166 31 1048576 4799.473 218.477 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 248.871 148.471 296.174 257.548 168.304 312.953 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 32 4 0.040 99.864 32 4 0.035 114.131 32 8 0.062 129.056 32 8 0.068 117.735 32 16 0.109 146.847 32 16 0.074 215.784 32 32 0.205 156.067 32 32 0.157 203.978 32 64 0.412 155.345 32 64 0.247 259.108 32 128 0.792 161.611 32 128 0.503 254.441 32 256 1.552 164.937 32 256 0.877 291.936 32 512 3.094 165.484 32 512 1.717 298.220 32 1024 6.132 166.989 32 1024 3.423 299.155 32 2048 12.408 165.055 32 2048 6.808 300.821 32 4096 24.491 167.245 32 4096 13.526 302.825 32 8192 49.005 167.167 32 8192 27.071 302.612 32 16384 102.780 159.408 32 16384 56.647 289.231 32 32768 218.944 149.664 32 32768 129.254 253.516 32 65536 454.605 144.160 32 65536 270.663 242.131 32 131072 928.910 141.103 32 131072 613.851 213.524 32 262144 1870.910 140.116 32 262144 719.537 364.323 32 524288 2740.032 191.344 32 524288 1560.160 336.048 32 1048576 7112.948 147.418 32 1048576 4472.650 234.442 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 153.625 99.864 191.344 257.577 114.131 364.323 stats by bits per item pack: unpack: bits avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1 550.746 142.180 711.603 743.757 172.961 868.668 2 482.989 142.180 621.378 645.999 166.111 745.654 3 429.243 143.395 516.222 507.913 166.111 615.678 4 466.170 148.471 615.193 701.973 166.111 846.904 5 440.002 148.471 538.740 555.846 167.772 642.562 6 427.361 148.471 534.832 556.416 167.772 657.024 7 430.056 148.471 526.949 537.315 172.961 619.011 8 330.282 147.169 432.960 539.564 166.111 764.246 9 412.406 148.471 503.041 504.812 166.111 592.425 10 384.950 148.471 465.851 456.887 166.111 533.110 11 392.744 143.395 476.451 480.466 166.111 554.261 12 374.531 103.884 460.586 505.746 174.763 588.513 13 370.613 147.169 445.802 441.223 166.111 508.299 14 347.992 81.840 422.660 423.619 166.111 481.175 15 332.850 147.169 394.341 390.074 172.961 435.700 16 325.613 148.471 382.123 529.800 166.111 636.917 17 317.936 148.471 386.117 367.481 167.772 423.588 18 292.846 143.395 389.063 353.819 167.772 446.184 19 304.826 148.471 374.992 347.753 167.772 411.351 20 293.198 143.395 358.033 369.080 174.763 439.063 21 292.723 148.471 349.035 329.241 166.111 379.682 22 292.850 142.180 347.560 331.583 166.111 380.313 23 289.393 148.471 347.616 327.794 174.763 377.895 24 276.168 148.471 329.261 357.915 166.111 424.766 25 274.179 148.471 333.667 304.604 55.554 361.712 26 270.086 142.180 321.155 305.983 166.111 349.426 27 263.757 142.180 314.592 290.962 166.111 338.600 28 187.568 97.542 246.722 221.780 111.107 307.033 29 230.034 142.180 278.406 248.402 166.111 294.974 30 241.074 147.169 295.080 258.391 172.961 317.019 31 248.871 148.471 296.174 257.548 168.304 312.953 32 153.625 99.864 191.344 257.577 114.131 364.323 stats by size pack: unpack: size(B) avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4 141.301 81.840 148.471 161.454 55.554 174.763 8 215.471 103.884 250.406 248.181 117.735 296.942 16 294.594 146.847 390.168 337.938 175.678 444.430 32 349.295 156.067 524.288 397.191 187.193 615.678 64 368.689 155.345 627.186 429.272 223.883 745.654 128 382.467 161.611 674.461 452.821 228.164 790.679 256 395.508 164.937 691.844 466.924 235.470 770.813 512 398.164 165.484 664.856 479.428 237.370 828.504 1024 395.938 166.989 709.092 481.899 187.202 851.163 2048 403.648 165.055 706.700 489.189 242.195 867.057 4096 404.238 167.245 710.999 489.957 242.137 867.057 8192 402.282 167.167 710.793 487.851 231.074 868.613 16384 389.129 159.408 711.603 471.452 233.904 868.668 32768 329.604 149.664 553.758 448.386 217.635 861.567 65536 312.261 144.160 493.282 440.753 206.660 860.933 131072 308.692 141.103 501.715 428.867 177.699 860.753 262144 301.659 140.116 496.476 435.181 184.725 866.933 524288 301.688 187.284 466.144 425.717 168.304 866.517 1048576 274.932 147.418 457.309 414.262 185.261 849.763 real 7m 23.97s user 7m 17.64s sys 0m 0.28s ================================================ FILE: benchmark/PackedArraySelfBench-reference-ipad2-cortex-a9-1GHz.txt ================================================ -- PackedArray self bench ------------------------------------------------------ memcpy: bits size (B) time (µs) speed (B/µs) 32 4 0.080 50.081 32 8 0.043 185.384 32 16 0.037 432.960 32 32 0.044 725.501 32 64 0.049 1309.441 32 128 0.068 1883.758 32 256 0.105 2440.322 32 512 0.178 2874.811 32 1024 0.320 3200.423 32 2048 0.628 3261.175 32 4096 1.206 3395.902 32 8192 2.370 3456.366 32 16384 4.719 3471.908 32 32768 10.093 3246.615 32 65536 24.481 2677.008 32 131072 50.708 2584.836 32 262144 100.668 2604.046 32 524288 273.219 1918.929 32 1048576 1736.193 603.951 avg (B/µs) min (B/µs) max (B/µs) 2122.285 50.081 3471.908 loopcpy: bits size (B) time (µs) speed (B/µs) 32 4 0.046 86.929 32 8 0.033 243.148 32 16 0.028 568.719 32 32 0.034 938.586 32 64 0.042 1525.201 32 128 0.060 2138.928 32 256 0.095 2691.082 32 512 0.168 3046.076 32 1024 0.312 3283.614 32 2048 0.638 3209.991 32 4096 1.197 3422.285 32 8192 2.351 3484.407 32 16384 4.664 3512.906 32 32768 10.026 3268.310 32 65536 24.636 2660.169 32 131072 51.486 2545.779 32 262144 102.620 2554.515 32 524288 324.258 1616.886 32 1048576 1739.985 602.635 avg (B/µs) min (B/µs) max (B/µs) 2178.956 86.929 3512.906 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 1 4 0.042 95.325 1 4 0.025 159.783 1 8 0.049 162.886 1 8 0.029 277.309 1 16 0.065 245.820 1 16 0.041 390.168 1 32 0.097 329.773 1 32 0.066 484.541 1 64 0.160 400.053 1 64 0.114 560.408 1 128 0.304 421.075 1 128 0.223 574.193 1 256 0.578 442.780 1 256 0.445 575.424 1 512 1.165 439.518 1 512 0.884 579.149 1 1024 2.314 442.506 1 1024 1.674 611.644 1 2048 4.645 440.916 1 2048 3.336 613.918 1 4096 8.970 456.632 1 4096 6.649 616.031 1 8192 17.674 463.507 1 8192 13.280 616.871 1 16384 35.839 457.158 1 16384 26.544 617.237 1 32768 74.826 437.923 1 32768 53.093 617.182 1 65536 169.752 386.069 1 65536 107.149 611.634 1 131072 347.153 377.563 1 131072 214.084 612.245 1 262144 693.185 378.173 1 262144 430.782 608.530 1 524288 1403.459 373.568 1 524288 855.053 613.164 1 1048576 3293.200 318.406 1 1048576 1715.826 611.120 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 372.087 95.325 463.507 544.766 159.783 617.237 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 2 4 0.042 95.325 2 4 0.024 166.111 2 8 0.049 162.886 2 8 0.030 268.435 2 16 0.065 245.820 2 16 0.042 381.300 2 32 0.096 333.046 2 32 0.065 491.640 2 64 0.160 400.053 2 64 0.127 503.631 2 128 0.322 397.388 2 128 0.238 537.408 2 256 0.614 416.987 2 256 0.481 532.082 2 512 1.241 412.581 2 512 0.965 530.505 2 1024 2.395 427.530 2 1024 1.933 529.720 2 2048 4.702 435.573 2 2048 3.911 523.649 2 4096 9.687 422.837 2 4096 7.789 525.861 2 8192 19.468 420.792 2 8192 15.567 526.239 2 16384 38.226 428.610 2 16384 31.169 525.652 2 32768 78.617 416.805 2 32768 62.115 527.538 2 65536 172.073 380.861 2 65536 125.990 520.169 2 131072 348.713 375.874 2 131072 252.181 519.754 2 262144 695.964 376.663 2 262144 504.342 519.774 2 524288 1401.202 374.170 2 524288 1005.793 521.268 2 1048576 3350.018 313.006 2 1048576 2031.889 516.060 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 359.832 95.325 435.573 482.463 166.111 537.408 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 3 4 0.043 92.692 3 4 0.024 166.111 3 8 0.049 163.680 3 8 0.030 266.305 3 16 0.064 249.475 3 16 0.042 381.300 3 32 0.097 329.773 3 32 0.065 493.448 3 64 0.206 310.689 3 64 0.161 397.682 3 128 0.379 337.867 3 128 0.300 426.426 3 256 0.745 343.597 3 256 0.607 421.737 3 512 1.499 341.575 3 512 1.250 409.591 3 1024 3.021 338.960 3 1024 2.532 404.423 3 2048 6.032 339.523 3 2048 5.060 404.727 3 4096 12.085 338.934 3 4096 10.121 404.708 3 8192 24.168 338.960 3 8192 20.231 404.923 3 16384 48.332 338.989 3 16384 40.492 404.623 3 32768 99.909 327.978 3 32768 81.023 404.428 3 65536 217.610 301.163 3 65536 164.947 397.315 3 131072 442.201 296.408 3 131072 330.476 396.616 3 262144 885.536 296.029 3 262144 660.728 396.750 3 524288 1787.981 293.229 3 524288 1325.356 395.583 3 1048576 4058.502 258.365 3 1048576 2657.220 394.614 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 296.731 92.692 343.597 387.964 166.111 493.448 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 4 4 0.042 95.325 4 4 0.023 174.763 4 8 0.049 162.886 4 8 0.030 266.305 4 16 0.064 250.406 4 16 0.041 390.168 4 32 0.096 333.046 4 32 0.065 491.640 4 64 0.195 328.161 4 64 0.139 460.438 4 128 0.332 385.683 4 128 0.248 515.726 4 256 0.613 417.636 4 256 0.457 560.116 4 512 1.160 441.415 4 512 0.873 586.424 4 1024 2.279 449.311 4 1024 1.704 600.947 4 2048 4.489 456.232 4 2048 3.385 605.010 4 4096 8.898 460.327 4 4096 6.705 610.883 4 8192 17.747 461.601 4 8192 13.369 612.757 4 16384 35.469 461.927 4 16384 26.696 613.726 4 32768 75.959 431.391 4 32768 54.155 605.079 4 65536 160.540 408.223 4 65536 109.184 600.234 4 131072 327.985 399.628 4 131072 218.985 598.544 4 262144 652.757 401.595 4 262144 438.569 597.726 4 524288 1305.665 401.549 4 524288 882.275 594.245 4 1048576 3282.188 319.475 4 1048576 1779.355 589.301 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 371.885 95.325 461.927 530.212 174.763 613.726 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 5 4 0.042 95.325 5 4 0.024 166.111 5 8 0.048 166.111 5 8 0.029 277.309 5 16 0.064 250.406 5 16 0.042 381.300 5 32 0.109 293.052 5 32 0.081 395.923 5 64 0.195 328.562 5 64 0.157 407.957 5 128 0.384 333.253 5 128 0.325 393.889 5 256 0.717 356.962 5 256 0.607 421.737 5 512 1.384 369.937 5 512 1.193 429.153 5 1024 2.737 374.126 5 1024 2.498 409.903 5 2048 5.359 382.166 5 2048 4.914 416.765 5 4096 11.153 367.256 5 4096 9.846 416.008 5 8192 22.564 363.057 5 8192 19.107 428.741 5 16384 44.998 364.106 5 16384 38.308 427.692 5 32768 98.301 333.344 5 32768 79.354 412.934 5 65536 209.914 312.204 5 65536 159.581 410.676 5 131072 426.169 307.559 5 131072 317.814 412.417 5 262144 853.497 307.141 5 262144 631.664 415.006 5 524288 1721.106 304.623 5 524288 1279.110 409.885 5 1048576 3962.770 264.607 5 1048576 2566.704 408.530 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 309.147 95.325 382.166 391.681 166.111 429.153 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 6 4 0.042 95.325 6 4 0.024 166.111 6 8 0.048 166.937 6 8 0.029 275.036 6 16 0.064 249.475 6 16 0.042 381.300 6 32 0.110 291.145 6 32 0.080 400.650 6 64 0.195 328.161 6 64 0.153 418.124 6 128 0.374 342.174 6 128 0.311 411.711 6 256 0.712 359.472 6 256 0.596 429.497 6 512 1.385 369.682 6 512 1.169 437.994 6 1024 2.729 375.237 6 1024 2.372 431.698 6 2048 5.417 378.061 6 2048 4.961 412.819 6 4096 10.813 378.803 6 4096 9.175 446.427 6 8192 21.580 379.611 6 8192 18.727 437.447 6 16384 44.341 369.499 6 16384 38.273 428.084 6 32768 96.649 339.041 6 32768 75.466 434.209 6 65536 206.446 317.449 6 65536 155.726 420.842 6 131072 412.860 317.473 6 131072 307.782 425.860 6 262144 843.572 310.755 6 262144 621.443 421.831 6 524288 1689.331 310.352 6 524288 1249.630 419.555 6 1048576 3910.822 268.122 6 1048576 2506.815 418.290 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 312.988 95.325 379.611 400.920 166.111 446.427 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 7 4 0.042 95.325 7 4 0.024 167.772 7 8 0.049 163.680 7 8 0.029 275.036 7 16 0.064 249.475 7 16 0.041 390.168 7 32 0.110 291.145 7 32 0.081 395.923 7 64 0.209 306.433 7 64 0.171 374.387 7 128 0.427 299.928 7 128 0.344 372.052 7 256 0.787 325.278 7 256 0.664 385.545 7 512 1.513 338.400 7 512 1.319 388.193 7 1024 2.991 342.365 7 1024 2.614 391.734 7 2048 5.911 346.480 7 2048 5.197 394.088 7 4096 11.784 347.588 7 4096 10.369 395.021 7 8192 24.783 330.551 7 8192 20.526 399.105 7 16384 46.674 351.030 7 16384 41.067 398.957 7 32768 99.549 329.164 7 32768 83.490 392.479 7 65536 215.374 304.289 7 65536 171.353 382.462 7 131072 435.885 300.703 7 131072 345.157 379.746 7 262144 874.033 299.925 7 262144 689.197 380.361 7 524288 1752.785 299.117 7 524288 1381.771 379.432 7 1048576 4027.756 260.338 7 1048576 2774.371 377.951 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 293.748 95.325 351.030 369.495 167.772 399.105 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 8 4 0.042 94.787 8 4 0.024 166.111 8 8 0.049 163.680 8 8 0.030 266.305 8 16 0.064 250.406 8 16 0.041 390.168 8 32 0.109 293.693 8 32 0.069 462.820 8 64 0.200 319.947 8 64 0.140 457.301 8 128 0.339 377.546 8 128 0.252 507.920 8 256 0.634 403.814 8 256 0.475 538.757 8 512 1.228 416.987 8 512 0.924 554.046 8 1024 2.412 424.530 8 1024 1.830 559.532 8 2048 4.797 426.935 8 2048 3.612 566.992 8 4096 9.532 429.712 8 4096 7.204 568.569 8 8192 19.015 430.816 8 8192 14.666 558.568 8 16384 38.184 429.078 8 16384 29.614 553.252 8 32768 83.373 393.030 8 32768 60.220 544.138 8 65536 174.221 376.166 8 65536 121.782 538.142 8 131072 352.172 372.182 8 131072 245.497 533.904 8 262144 704.944 371.865 8 262144 493.838 530.830 8 524288 1431.190 366.330 8 524288 992.968 528.001 8 1048576 3516.078 298.223 8 1048576 2023.901 518.096 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 349.459 94.787 430.816 491.761 166.111 568.569 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 9 4 0.041 97.542 9 4 0.024 166.111 9 8 0.048 166.937 9 8 0.029 277.309 9 16 0.073 218.596 9 16 0.053 302.292 9 32 0.114 280.790 9 32 0.092 347.714 9 64 0.229 279.620 9 64 0.189 338.934 9 128 0.397 322.445 9 128 0.349 366.715 9 256 0.769 332.943 9 256 0.714 358.511 9 512 1.487 344.314 9 512 1.386 369.364 9 1024 2.935 348.901 9 1024 2.751 372.245 9 2048 5.812 352.379 9 2048 5.478 373.866 9 4096 11.557 354.414 9 4096 10.933 374.648 9 8192 26.190 312.791 9 8192 21.860 374.746 9 16384 47.166 347.368 9 16384 43.919 373.052 9 32768 106.228 308.469 9 32768 89.139 367.606 9 65536 229.362 285.732 9 65536 182.575 358.954 9 131072 457.708 286.366 9 131072 370.191 354.066 9 262144 916.958 285.884 9 262144 741.658 353.457 9 524288 1875.167 279.595 9 524288 1485.347 352.973 9 1048576 4209.851 249.077 9 1048576 2983.939 351.407 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 287.061 97.542 354.414 343.893 166.111 374.746 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 10 4 0.042 94.787 10 4 0.025 159.783 10 8 0.048 166.937 10 8 0.029 275.036 10 16 0.072 222.215 10 16 0.053 302.292 10 32 0.115 277.883 10 32 0.096 333.046 10 64 0.233 274.755 10 64 0.200 319.947 10 128 0.434 294.984 10 128 0.401 319.186 10 256 0.805 317.957 10 256 0.782 327.360 10 512 1.547 330.942 10 512 1.555 329.268 10 1024 3.307 309.659 10 1024 3.074 333.098 10 2048 7.100 288.446 10 2048 6.001 341.277 10 4096 14.932 274.307 10 4096 12.168 336.616 10 8192 26.918 304.332 10 8192 23.402 350.056 10 16384 53.899 303.976 10 16384 47.417 345.531 10 32768 115.340 284.099 10 32768 96.932 338.052 10 65536 238.417 274.880 10 65536 196.528 333.469 10 131072 486.405 269.471 10 131072 389.272 336.711 10 262144 980.695 267.304 10 262144 786.427 333.335 10 524288 1978.149 265.040 10 524288 1582.063 331.395 10 1048576 4330.473 242.139 10 1048576 3182.851 329.446 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 266.532 94.787 330.942 319.732 159.783 350.056 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 11 4 0.042 95.325 11 4 0.024 167.772 11 8 0.049 163.680 11 8 0.030 266.305 11 16 0.075 213.044 11 16 0.057 280.790 11 32 0.117 273.356 11 32 0.112 285.570 11 64 0.229 279.620 11 64 0.204 313.593 11 128 0.401 319.186 11 128 0.385 332.428 11 256 0.796 321.576 11 256 0.734 348.844 11 512 1.514 338.186 11 512 1.452 352.625 11 1024 3.006 340.654 11 1024 2.895 353.728 11 2048 5.990 341.902 11 2048 5.776 354.560 11 4096 11.920 343.625 11 4096 11.512 355.809 11 8192 23.843 343.580 11 8192 23.019 355.882 11 16384 47.724 343.307 11 16384 46.030 355.943 11 32768 107.302 305.381 11 32768 94.499 346.755 11 65536 230.760 284.001 11 65536 195.028 336.034 11 131072 466.882 280.739 11 131072 394.311 332.408 11 262144 935.306 280.276 11 262144 789.108 332.203 11 524288 1890.680 277.301 11 524288 1588.087 330.138 11 1048576 4219.064 248.533 11 1048576 3196.310 328.058 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 283.856 95.325 343.625 322.602 167.772 355.943 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 12 4 0.043 93.207 12 4 0.024 166.111 12 8 0.048 166.111 12 8 0.029 275.036 12 16 0.075 213.722 12 16 0.057 280.790 12 32 0.117 273.914 12 32 0.096 333.046 12 64 0.241 265.515 12 64 0.228 280.790 12 128 0.400 320.138 12 128 0.355 360.558 12 256 0.756 338.613 12 256 0.684 374.256 12 512 1.468 348.787 12 512 1.340 382.115 12 1024 2.895 353.728 12 1024 2.659 385.095 12 2048 5.757 355.735 12 2048 5.284 387.580 12 4096 11.453 357.638 12 4096 10.533 388.870 12 8192 22.854 358.448 12 8192 21.057 389.041 12 16384 47.302 346.370 12 16384 42.937 381.584 12 32768 98.057 334.173 12 32768 87.889 372.834 12 65536 205.861 318.351 12 65536 179.174 365.767 12 131072 413.125 317.270 12 131072 362.284 361.794 12 262144 826.474 317.184 12 262144 729.278 359.457 12 524288 1661.216 315.605 12 524288 1467.546 357.255 12 1048576 3923.555 267.252 12 1048576 2992.934 350.351 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 297.987 93.207 358.448 344.860 166.111 389.041 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 13 4 0.042 95.325 13 4 0.024 166.111 13 8 0.049 163.680 13 8 0.029 277.309 13 16 0.076 211.034 13 16 0.057 280.790 13 32 0.121 264.729 13 32 0.107 298.926 13 64 0.232 275.884 13 64 0.220 290.829 13 128 0.417 306.959 13 128 0.410 312.134 13 256 0.796 321.672 13 256 0.793 322.833 13 512 1.549 330.535 13 512 1.559 328.412 13 1024 3.034 337.522 13 1024 3.091 331.274 13 2048 6.062 337.841 13 2048 6.162 332.351 13 4096 12.029 340.512 13 4096 12.749 321.281 13 8192 24.105 339.845 13 8192 24.570 333.415 13 16384 48.125 340.448 13 16384 49.141 333.408 13 32768 107.812 303.937 13 32768 101.950 321.413 13 65536 258.432 253.591 13 65536 211.363 310.064 13 131072 528.694 247.916 13 131072 425.039 308.377 13 262144 949.722 276.022 13 262144 852.585 307.470 13 524288 1967.364 266.493 13 524288 1709.570 306.678 13 1048576 4506.298 232.691 13 1048576 3477.713 301.513 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 276.139 95.325 340.512 304.452 166.111 333.415 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 14 4 0.042 95.325 14 4 0.024 167.772 14 8 0.048 166.937 14 8 0.029 275.036 14 16 0.076 210.373 14 16 0.057 280.790 14 32 0.150 213.383 14 32 0.124 258.111 14 64 0.250 256.141 14 64 0.226 283.160 14 128 0.443 288.951 14 128 0.440 290.987 14 256 0.856 299.009 14 256 0.821 311.862 14 512 1.684 304.047 14 512 1.616 316.831 14 1024 3.341 306.499 14 1024 3.218 318.216 14 2048 6.879 297.714 14 2048 6.392 320.400 14 4096 14.143 289.613 14 4096 12.540 326.632 14 8192 26.554 308.502 14 8192 25.215 324.887 14 16384 53.723 304.973 14 16384 51.027 321.085 14 32768 118.171 277.293 14 32768 106.867 306.624 14 65536 249.488 262.682 14 65536 221.435 295.961 14 131072 502.301 260.943 14 131072 443.581 295.486 14 262144 1011.567 259.146 14 262144 890.932 294.236 14 524288 2034.689 257.675 14 524288 1789.674 292.952 14 1048576 4404.645 238.061 14 1048576 3635.919 288.394 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 257.751 95.325 308.502 293.128 167.772 326.632 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 15 4 0.042 95.325 15 4 0.024 166.111 15 8 0.049 163.680 15 8 0.029 277.309 15 16 0.076 210.373 15 16 0.057 280.790 15 32 0.128 249.940 15 32 0.108 296.286 15 64 0.235 272.247 15 64 0.239 267.900 15 128 0.477 268.435 15 128 0.465 275.177 15 256 0.903 283.534 15 256 0.908 281.896 15 512 1.752 292.214 15 512 1.762 290.593 15 1024 3.502 292.413 15 1024 3.503 292.334 15 2048 6.862 298.448 15 2048 6.990 292.992 15 4096 14.036 291.822 15 4096 13.951 293.598 15 8192 27.948 293.117 15 8192 27.859 294.052 15 16384 53.660 305.330 15 16384 55.880 293.199 15 32768 121.163 270.445 15 32768 115.737 283.125 15 65536 251.041 261.057 15 65536 240.009 273.057 15 131072 520.758 251.695 15 131072 484.044 270.785 15 262144 1013.038 258.770 15 262144 969.011 270.527 15 524288 2094.377 250.331 15 524288 1956.810 267.930 15 1048576 4465.699 234.807 15 1048576 3959.166 264.848 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 254.947 95.325 305.330 275.395 166.111 296.286 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 16 4 0.042 95.325 16 4 0.024 167.772 16 8 0.049 162.886 16 8 0.030 266.305 16 16 0.077 207.767 16 16 0.065 246.724 16 32 0.120 266.834 16 32 0.078 410.452 16 64 0.211 303.317 16 64 0.155 412.978 16 128 0.381 335.964 16 128 0.287 445.906 16 256 0.717 357.081 16 256 0.558 458.864 16 512 1.389 368.603 16 512 1.121 456.814 16 1024 2.732 374.812 16 1024 2.199 465.680 16 2048 5.419 377.928 16 2048 4.367 468.960 16 4096 10.818 378.628 16 4096 8.726 469.395 16 8192 21.628 378.770 16 8192 17.438 469.780 16 16384 46.079 355.564 16 16384 35.383 463.047 16 32768 95.484 343.178 16 32768 71.965 455.333 16 65536 202.452 323.711 16 65536 145.259 451.167 16 131072 408.423 320.922 16 131072 292.849 447.575 16 262144 816.695 320.982 16 262144 587.200 446.430 16 524288 1651.642 317.434 16 524288 1187.925 441.348 16 1048576 3917.260 267.681 16 1048576 2628.136 398.981 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 308.284 95.325 378.770 412.816 167.772 469.780 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 17 4 0.042 95.325 17 4 0.024 166.111 17 8 0.073 109.655 17 8 0.041 195.084 17 16 0.081 197.379 17 16 0.068 235.470 17 32 0.130 246.271 17 32 0.122 262.657 17 64 0.239 267.633 17 64 0.249 257.122 17 128 0.503 254.441 17 128 0.475 269.514 17 256 0.906 282.564 17 256 0.924 277.023 17 512 1.756 291.580 17 512 1.819 281.490 17 1024 3.475 294.680 17 1024 3.618 283.029 17 2048 6.898 296.901 17 2048 7.332 279.329 17 4096 13.681 299.395 17 4096 14.409 284.265 17 8192 27.364 299.371 17 8192 28.794 284.503 17 16384 55.014 297.814 17 16384 57.859 283.171 17 32768 120.723 271.431 17 32768 121.059 270.678 17 65536 253.321 258.707 17 65536 243.953 268.642 17 131072 510.451 256.777 17 131072 500.463 261.901 17 262144 1032.729 253.836 17 262144 1000.750 261.948 17 524288 2065.556 253.824 17 524288 2008.434 261.043 17 1048576 4510.437 232.478 17 1048576 4113.303 254.923 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 250.530 95.325 299.395 259.890 166.111 284.503 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 18 4 0.041 97.542 18 4 0.024 166.111 18 8 0.057 140.395 18 8 0.041 195.084 18 16 0.080 199.729 18 16 0.068 235.470 18 32 0.129 248.092 18 32 0.122 262.657 18 64 0.261 245.147 18 64 0.302 211.867 18 128 0.491 260.744 18 128 0.544 235.263 18 256 0.943 271.490 18 256 1.064 240.587 18 512 1.856 275.849 18 512 2.106 243.121 18 1024 3.701 276.666 18 1024 4.190 244.393 18 2048 7.480 273.800 18 2048 8.369 244.714 18 4096 14.643 279.725 18 4096 16.645 246.081 18 8192 29.527 277.441 18 8192 32.981 248.386 18 16384 62.747 261.112 18 16384 65.476 250.229 18 32768 129.837 252.378 18 32768 132.835 246.682 18 65536 266.935 245.513 18 65536 279.483 234.490 18 131072 532.466 246.160 18 131072 556.661 235.461 18 262144 1066.651 245.764 18 262144 1113.266 235.473 18 524288 2182.298 240.246 18 524288 2241.201 233.932 18 1048576 4655.627 225.228 18 1048576 4571.640 229.365 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 240.159 97.542 279.725 233.651 166.111 262.657 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 19 4 0.041 97.542 19 4 0.024 166.111 19 8 0.056 142.785 19 8 0.040 199.729 19 16 0.080 199.729 19 16 0.068 235.470 19 32 0.131 244.477 19 32 0.123 260.112 19 64 0.246 260.112 19 64 0.262 244.254 19 128 0.480 266.702 19 128 0.501 255.410 19 256 0.922 277.668 19 256 0.992 258.049 19 512 1.777 288.137 19 512 1.911 267.933 19 1024 3.484 293.914 19 1024 3.790 270.175 19 2048 6.888 297.332 19 2048 7.516 272.489 19 4096 13.906 294.549 19 4096 14.955 273.888 19 8192 27.625 296.542 19 8192 29.860 274.349 19 16384 55.112 297.286 19 16384 60.038 272.895 19 32768 127.433 257.139 19 32768 126.463 259.111 19 65536 268.818 243.793 19 65536 260.566 251.514 19 131072 539.692 242.864 19 131072 523.177 250.531 19 262144 1084.829 241.645 19 262144 1055.068 248.462 19 524288 2194.660 238.893 19 524288 2113.695 248.043 19 1048576 4674.326 224.327 19 1048576 4345.415 241.306 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 247.655 97.542 297.332 249.991 166.111 274.349 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 20 4 0.042 95.325 20 4 0.024 166.111 20 8 0.056 142.785 20 8 0.040 199.729 20 16 0.081 197.379 20 16 0.068 235.470 20 32 0.132 242.270 20 32 0.128 249.940 20 64 0.254 252.052 20 64 0.257 249.012 20 128 0.461 277.596 20 128 0.487 262.786 20 256 0.879 291.224 20 256 0.947 270.328 20 512 1.732 295.593 20 512 1.868 274.089 20 1024 3.406 300.642 20 1024 3.715 275.636 20 2048 6.733 304.176 20 2048 7.402 276.684 20 4096 13.449 304.559 20 4096 14.758 277.542 20 8192 26.872 304.854 20 8192 29.502 277.677 20 16384 56.673 289.097 20 16384 60.617 270.286 20 32768 119.032 275.288 20 32768 125.516 261.066 20 65536 247.616 264.668 20 65536 256.488 255.513 20 131072 497.675 263.369 20 131072 515.635 254.195 20 262144 995.378 263.361 20 262144 1029.651 254.595 20 524288 2033.760 257.792 20 524288 2062.983 254.141 20 1048576 4479.797 234.068 20 1048576 4261.499 246.058 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 255.584 95.325 304.854 253.203 166.111 277.677 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 21 4 0.042 95.325 21 4 0.024 167.772 21 8 0.056 142.785 21 8 0.040 200.925 21 16 0.081 197.379 21 16 0.068 235.470 21 32 0.137 233.829 21 32 0.137 233.422 21 64 0.257 249.012 21 64 0.277 231.012 21 128 0.470 272.385 21 128 0.529 241.943 21 256 0.933 274.404 21 256 1.038 246.610 21 512 1.820 281.305 21 512 2.024 252.973 21 1024 3.612 283.515 21 1024 4.013 255.167 21 2048 7.169 285.674 21 2048 7.955 257.446 21 4096 14.289 286.656 21 4096 15.861 258.243 21 8192 28.604 286.393 21 8192 31.643 258.887 21 16384 57.153 286.669 21 16384 63.262 258.986 21 32768 133.531 245.396 21 32768 135.169 242.422 21 65536 280.331 233.781 21 65536 277.524 236.145 21 131072 561.397 233.475 21 131072 557.681 235.030 21 262144 1125.003 233.016 21 262144 1119.104 234.245 21 524288 2311.834 226.784 21 524288 2260.143 231.971 21 1048576 4831.654 217.022 21 1048576 4654.775 225.269 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 240.253 95.325 286.669 237.049 167.772 258.986 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 22 4 0.041 97.542 22 4 0.024 167.772 22 8 0.056 143.395 22 8 0.041 195.084 22 16 0.083 192.842 22 16 0.072 222.215 22 32 0.138 232.211 22 32 0.135 236.716 22 64 0.263 243.369 22 64 0.282 226.911 22 128 0.491 260.744 22 128 0.539 237.448 22 256 0.954 268.368 22 256 1.048 244.310 22 512 1.878 272.627 22 512 2.080 246.130 22 1024 3.726 274.825 22 1024 4.121 248.479 22 2048 7.431 275.601 22 2048 8.195 249.904 22 4096 14.851 275.809 22 4096 16.747 244.581 22 8192 30.335 270.049 22 8192 33.163 247.022 22 16384 62.218 263.332 22 16384 66.988 244.581 22 32768 133.994 244.549 22 32768 139.961 234.122 22 65536 279.154 234.766 22 65536 287.518 227.937 22 131072 561.343 233.497 22 131072 576.598 227.320 22 262144 1124.752 233.068 22 262144 1155.647 226.837 22 524288 2311.366 226.830 22 524288 2330.575 224.961 22 1048576 4856.025 215.933 22 1048576 4820.016 217.546 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 234.703 97.542 275.809 229.993 167.772 249.904 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 23 4 0.042 95.325 23 4 0.024 166.111 23 8 0.056 142.785 23 8 0.041 195.084 23 16 0.083 192.842 23 16 0.072 222.215 23 32 0.145 220.753 23 32 0.142 225.198 23 64 0.276 232.010 23 64 0.292 219.131 23 128 0.519 246.610 23 128 0.562 227.777 23 256 0.981 260.997 23 256 1.086 235.728 23 512 1.902 269.176 23 512 2.144 238.822 23 1024 4.607 222.272 23 1024 4.218 242.763 23 2048 9.140 224.070 23 2048 8.402 243.748 23 4096 15.160 270.187 23 4096 16.777 244.143 23 8192 31.203 262.541 23 8192 33.543 244.225 23 16384 64.747 253.046 23 16384 68.895 237.812 23 32768 142.199 230.438 23 32768 143.986 227.578 23 65536 307.138 213.376 23 65536 295.307 221.925 23 131072 623.145 210.339 23 131072 593.289 220.924 23 262144 1231.914 212.794 23 262144 1185.819 221.066 23 524288 2532.030 207.062 23 524288 2396.751 218.749 23 1048576 5186.455 202.176 23 1048576 4976.556 210.703 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 219.410 95.325 270.187 224.405 166.111 244.225 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 24 4 0.042 95.325 24 4 0.024 166.111 24 8 0.056 142.785 24 8 0.040 199.729 24 16 0.083 192.842 24 16 0.072 222.215 24 32 0.142 225.576 24 32 0.144 222.215 24 64 0.271 236.299 24 64 0.264 242.270 24 128 0.498 256.999 24 128 0.500 256.019 24 256 0.941 272.040 24 256 0.971 263.689 24 512 1.884 271.765 24 512 1.916 267.233 24 1024 3.638 281.471 24 1024 3.803 269.260 24 2048 7.230 283.262 24 2048 7.579 270.217 24 4096 14.407 284.303 24 4096 15.144 270.468 24 8192 28.823 284.216 24 8192 30.269 270.641 24 16384 57.604 284.424 24 16384 60.543 270.618 24 32768 127.642 256.718 24 32768 130.991 250.154 24 65536 261.972 250.164 24 65536 267.853 244.671 24 131072 529.469 247.554 24 131072 538.406 243.445 24 262144 1054.293 248.644 24 262144 1075.917 243.647 24 524288 2196.469 238.696 24 524288 2180.741 240.417 24 1048576 4717.675 222.265 24 1048576 4590.184 228.439 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 240.808 95.325 284.424 244.287 166.111 270.641 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 25 4 0.042 95.325 25 4 0.024 167.772 25 8 0.056 143.395 25 8 0.041 195.084 25 16 0.088 181.867 25 16 0.081 197.379 25 32 0.147 217.533 25 32 0.150 213.383 25 64 0.307 208.413 25 64 0.334 191.603 25 128 0.544 235.263 25 128 0.606 211.200 25 256 1.143 223.976 25 256 1.193 214.577 25 512 2.145 238.689 25 512 2.505 204.386 25 1024 4.219 242.722 25 1024 4.716 217.137 25 2048 8.649 236.794 25 2048 9.734 210.398 25 4096 16.781 244.084 25 4096 19.251 212.767 25 8192 33.580 243.956 25 8192 38.627 212.080 25 16384 71.712 228.469 25 16384 78.795 207.932 25 32768 154.184 212.525 25 32768 164.828 198.801 25 65536 321.649 203.750 25 65536 338.784 193.445 25 131072 638.999 205.121 25 131072 673.679 194.561 25 262144 1284.133 204.141 25 262144 1352.500 193.822 25 524288 2630.360 199.322 25 524288 2737.479 191.522 25 1048576 5374.208 195.113 25 1048576 5602.676 187.156 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 208.445 95.325 244.084 200.790 167.772 217.137 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 26 4 0.042 95.325 26 4 0.024 167.772 26 8 0.056 142.785 26 8 0.040 199.729 26 16 0.089 179.917 26 16 0.082 195.084 26 32 0.147 217.533 26 32 0.150 213.044 26 64 0.280 228.650 26 64 0.339 188.773 26 128 0.526 243.258 26 128 0.598 214.063 26 256 1.022 250.465 26 256 1.169 218.997 26 512 2.014 254.230 26 512 2.314 221.253 26 1024 4.010 255.364 26 1024 4.622 221.550 26 2048 7.975 256.799 26 2048 9.194 222.751 26 4096 15.939 256.980 26 4096 18.345 223.278 26 8192 31.859 257.134 26 8192 36.681 223.331 26 16384 67.780 241.723 26 16384 75.885 215.905 26 32768 144.651 226.532 26 32768 156.212 209.766 26 65536 299.915 218.515 26 65536 321.826 203.638 26 131072 602.669 217.486 26 131072 648.038 202.260 26 262144 1205.083 217.532 26 262144 1293.371 202.683 26 524288 2514.182 208.532 26 524288 2632.201 199.182 26 1048576 5151.079 203.564 26 1048576 5437.220 192.851 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 219.596 95.325 257.134 207.153 167.772 223.331 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 27 4 0.042 95.325 27 4 0.024 167.772 27 8 0.056 142.785 27 8 0.040 199.729 27 16 0.088 181.867 27 16 0.081 197.961 27 32 0.147 217.533 27 32 0.148 216.132 27 64 0.281 227.874 27 64 0.318 201.226 27 128 0.620 206.409 27 128 0.620 206.409 27 256 1.066 240.157 27 256 1.212 211.200 27 512 2.114 242.188 27 512 2.400 213.340 27 1024 4.223 242.489 27 1024 4.778 214.320 27 2048 8.429 242.969 27 2048 9.503 215.513 27 4096 16.357 250.410 27 4096 19.030 215.238 27 8192 33.008 248.183 27 8192 37.919 216.039 27 16384 67.645 242.205 27 16384 76.516 214.125 27 32768 155.869 210.228 27 32768 162.452 201.709 27 65536 320.899 204.226 27 65536 335.867 195.125 27 131072 644.522 203.363 27 131072 671.444 195.209 27 262144 1294.109 202.567 27 262144 1342.638 195.245 27 524288 2685.769 195.210 27 524288 2735.468 191.663 27 1048576 5418.993 193.500 27 1048576 5626.688 186.358 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 209.973 95.325 250.410 202.859 167.772 216.132 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 28 4 0.042 95.325 28 4 0.024 166.111 28 8 0.056 142.785 28 8 0.040 199.729 28 16 0.089 179.917 28 16 0.081 197.379 28 32 0.159 201.226 28 32 0.163 196.512 28 64 0.341 187.717 28 64 0.329 194.518 28 128 0.655 195.439 28 128 0.639 200.250 28 256 1.137 225.150 28 256 1.218 210.208 28 512 2.572 199.062 28 512 2.403 213.086 28 1024 4.858 210.786 28 1024 4.769 214.716 28 2048 9.562 214.181 28 2048 9.523 215.060 28 4096 19.607 208.904 28 4096 19.078 214.697 28 8192 37.125 220.661 28 8192 38.670 211.843 28 16384 75.294 217.600 28 16384 79.377 206.408 28 32768 164.759 198.885 28 32768 168.751 194.180 28 65536 329.890 198.660 28 65536 343.095 191.014 28 131072 663.039 197.684 28 131072 690.724 189.760 28 262144 1335.629 196.270 28 262144 1393.454 188.125 28 524288 2794.506 187.614 28 524288 2833.378 185.040 28 1048576 5590.112 187.577 28 1048576 5783.036 181.319 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 192.918 95.325 225.150 198.419 166.111 215.060 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 29 4 0.042 95.325 29 4 0.024 167.772 29 8 0.056 142.785 29 8 0.041 195.084 29 16 0.088 181.867 29 16 0.081 197.379 29 32 0.176 181.867 29 32 0.174 183.860 29 64 0.315 203.206 29 64 0.347 184.365 29 128 0.576 222.215 29 128 0.660 193.956 29 256 1.125 227.536 29 256 1.301 196.764 29 512 2.221 230.516 29 512 2.613 195.938 29 1024 4.413 232.035 29 1024 5.155 198.639 29 2048 8.806 232.569 29 2048 10.287 199.085 29 4096 17.589 232.872 29 4096 20.575 199.076 29 8192 35.207 232.681 29 8192 41.094 199.348 29 16384 73.196 223.837 29 16384 83.500 196.215 29 32768 165.839 197.589 29 32768 177.036 185.092 29 65536 342.842 191.155 29 65536 363.179 180.451 29 131072 687.204 190.732 29 131072 729.903 179.575 29 262144 1373.779 190.820 29 262144 1457.009 179.919 29 524288 2879.833 182.055 29 524288 2982.817 175.769 29 1048576 5755.736 182.179 29 1048576 6074.841 172.610 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 198.623 95.325 232.872 188.468 167.772 199.348 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 30 4 0.042 95.325 30 4 0.024 166.111 30 8 0.055 145.257 30 8 0.041 195.084 30 16 0.088 181.867 30 16 0.081 197.379 30 32 0.175 182.858 30 32 0.173 184.873 30 64 0.291 219.849 30 64 0.333 192.289 30 128 0.597 214.405 30 128 0.656 195.155 30 256 1.141 224.351 30 256 1.281 199.840 30 512 2.193 233.473 30 512 2.524 202.861 30 1024 4.328 236.598 30 1024 5.021 203.940 30 2048 8.587 238.503 30 2048 10.003 204.737 30 4096 17.212 237.971 30 4096 19.976 205.045 30 8192 34.460 237.724 30 8192 39.892 205.355 30 16384 72.682 225.420 30 16384 81.823 200.237 30 32768 160.424 204.259 30 32768 174.015 188.306 30 65536 329.294 199.020 30 65536 354.975 184.621 30 131072 658.327 199.099 30 131072 711.100 184.323 30 262144 1324.196 197.965 30 262144 1423.356 184.173 30 524288 2792.245 187.766 30 524288 2936.372 178.550 30 1048576 5561.981 188.526 30 1048576 5999.493 174.777 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 202.644 95.325 238.503 191.982 166.111 205.355 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 31 4 0.042 94.787 31 4 0.024 166.111 31 8 0.056 142.785 31 8 0.040 200.925 31 16 0.088 181.867 31 16 0.081 197.379 31 32 0.176 181.867 31 32 0.174 183.860 31 64 0.314 203.823 31 64 0.347 184.492 31 128 0.555 230.615 31 128 0.669 191.330 31 256 1.099 232.966 31 256 1.314 194.836 31 512 2.160 237.055 31 512 2.577 198.676 31 1024 4.297 238.305 31 1024 5.119 200.045 31 2048 8.544 239.701 31 2048 10.176 201.259 31 4096 17.025 240.587 31 4096 20.267 202.102 31 8192 34.043 240.636 31 8192 40.500 202.272 31 16384 71.974 227.638 31 16384 82.560 198.449 31 32768 162.387 201.789 31 32768 176.121 186.054 31 65536 334.650 195.834 31 65536 362.194 180.942 31 131072 673.735 194.545 31 131072 723.795 181.090 31 262144 1338.259 195.884 31 262144 1447.369 181.118 31 524288 2865.253 182.981 31 524288 2987.487 175.495 31 1048576 5645.855 185.725 31 1048576 6088.910 172.211 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 202.600 94.787 240.636 189.402 166.111 202.272 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 32 4 0.042 95.325 32 4 0.024 166.111 32 8 0.054 147.817 32 8 0.031 258.111 32 16 0.084 190.650 32 16 0.052 306.433 32 32 0.145 220.753 32 32 0.093 344.148 32 64 0.276 231.810 32 64 0.202 316.925 32 128 0.517 247.520 32 128 0.410 312.316 32 256 0.997 256.815 32 256 0.779 328.562 32 512 1.957 261.633 32 512 1.546 331.146 32 1024 3.877 264.111 32 1024 3.106 329.697 32 2048 7.727 265.040 32 2048 6.166 332.145 32 4096 15.474 264.705 32 4096 12.314 332.627 32 8192 30.860 265.457 32 8192 24.610 332.872 32 16384 64.853 252.633 32 16384 49.479 331.130 32 32768 143.448 228.431 32 32768 101.416 323.105 32 65536 294.017 222.899 32 65536 205.293 319.231 32 131072 588.369 222.772 32 131072 410.916 318.975 32 262144 1185.554 221.115 32 262144 824.835 317.814 32 524288 2551.393 205.491 32 524288 1810.038 289.656 32 1048576 5080.647 206.386 32 1048576 4263.054 245.968 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 224.809 95.325 265.457 307.209 166.111 344.148 stats by bits per item pack: unpack: bits avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1 372.087 95.325 463.507 544.766 159.783 617.237 2 359.832 95.325 435.573 482.463 166.111 537.408 3 296.731 92.692 343.597 387.964 166.111 493.448 4 371.885 95.325 461.927 530.212 174.763 613.726 5 309.147 95.325 382.166 391.681 166.111 429.153 6 312.988 95.325 379.611 400.920 166.111 446.427 7 293.748 95.325 351.030 369.495 167.772 399.105 8 349.459 94.787 430.816 491.761 166.111 568.569 9 287.061 97.542 354.414 343.893 166.111 374.746 10 266.532 94.787 330.942 319.732 159.783 350.056 11 283.856 95.325 343.625 322.602 167.772 355.943 12 297.987 93.207 358.448 344.860 166.111 389.041 13 276.139 95.325 340.512 304.452 166.111 333.415 14 257.751 95.325 308.502 293.128 167.772 326.632 15 254.947 95.325 305.330 275.395 166.111 296.286 16 308.284 95.325 378.770 412.816 167.772 469.780 17 250.530 95.325 299.395 259.890 166.111 284.503 18 240.159 97.542 279.725 233.651 166.111 262.657 19 247.655 97.542 297.332 249.991 166.111 274.349 20 255.584 95.325 304.854 253.203 166.111 277.677 21 240.253 95.325 286.669 237.049 167.772 258.986 22 234.703 97.542 275.809 229.993 167.772 249.904 23 219.410 95.325 270.187 224.405 166.111 244.225 24 240.808 95.325 284.424 244.287 166.111 270.641 25 208.445 95.325 244.084 200.790 167.772 217.137 26 219.596 95.325 257.134 207.153 167.772 223.331 27 209.973 95.325 250.410 202.859 167.772 216.132 28 192.918 95.325 225.150 198.419 166.111 215.060 29 198.623 95.325 232.872 188.468 167.772 199.348 30 202.644 95.325 238.503 191.982 166.111 205.355 31 202.600 94.787 240.636 189.402 166.111 202.272 32 224.809 95.325 265.457 307.209 166.111 344.148 stats by size pack: unpack: size(B) avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4 95.403 92.692 97.542 166.505 159.783 174.763 8 152.855 109.655 166.937 237.050 195.084 277.309 16 210.261 179.917 250.406 277.234 195.084 390.168 32 253.442 181.867 333.046 308.389 183.860 493.448 64 269.567 187.717 400.053 300.745 184.365 560.408 128 288.854 195.439 421.075 317.289 191.330 574.193 256 303.721 223.976 442.780 326.895 194.836 575.424 512 310.331 199.062 441.415 331.048 195.938 586.424 1024 312.161 210.786 449.311 333.757 198.639 611.644 2048 313.239 214.181 456.232 334.545 199.085 613.918 4096 314.511 208.904 460.327 336.075 199.076 616.031 8192 314.254 220.661 463.507 337.042 199.348 616.871 16384 310.626 217.600 461.927 334.220 196.215 617.237 32768 285.913 197.589 437.923 325.267 185.092 617.182 65536 269.664 191.155 408.223 318.602 180.451 611.634 131072 267.111 190.732 399.628 317.526 179.575 612.245 262144 267.692 190.820 401.595 316.784 179.919 608.530 524288 262.235 182.055 401.549 313.811 175.495 613.164 1048576 237.402 182.179 319.475 306.682 172.211 611.120 real 8m47.427s user 8m47.314s sys 0m0.000s ================================================ FILE: benchmark/PackedArraySelfBench-reference-iphone5-a6-1.3GHz.txt ================================================ -- PackedArray self bench ------------------------------------------------------ memcpy: bits size (B) time (µs) speed (B/µs) 32 4 0.057 70.198 32 8 0.046 173.857 32 16 0.087 184.365 32 32 0.145 220.390 32 64 0.028 2294.320 32 128 0.036 3555.437 32 256 0.050 5137.521 32 512 0.090 5681.174 32 1024 0.148 6916.211 32 2048 0.265 7724.761 32 4096 0.496 8259.552 32 8192 0.972 8427.701 32 16384 1.904 8604.993 32 32768 4.405 7438.783 32 65536 11.115 5896.137 32 131072 22.198 5904.686 32 262144 44.210 5929.524 32 524288 80.540 6509.645 32 1048576 385.998 2716.534 avg (B/µs) min (B/µs) max (B/µs) 4823.463 70.198 8604.993 loopcpy: bits size (B) time (µs) speed (B/µs) 32 4 0.025 159.783 32 8 0.031 258.111 32 16 0.067 237.975 32 32 0.116 275.601 32 64 0.016 4006.499 32 128 0.022 5772.806 32 256 0.035 7304.366 32 512 0.068 7535.030 32 1024 0.118 8676.702 32 2048 0.216 9481.164 32 4096 0.414 9890.541 32 8192 0.810 10114.730 32 16384 1.602 10227.635 32 32768 3.525 9295.837 32 65536 9.211 7114.922 32 131072 18.442 7107.196 32 262144 36.640 7154.599 32 524288 75.963 6901.885 32 1048576 389.285 2693.594 avg (B/µs) min (B/µs) max (B/µs) 6010.999 159.783 10227.635 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 1 4 0.027 148.471 1 4 0.013 305.040 1 8 0.032 250.406 1 8 0.018 447.392 1 16 0.043 372.827 1 16 0.027 593.884 1 32 0.078 410.452 1 32 0.044 729.444 1 64 0.119 537.947 1 64 0.096 666.093 1 128 0.203 630.130 1 128 0.169 757.223 1 256 0.387 661.578 1 256 0.333 768.605 1 512 0.755 678.081 1 512 0.663 772.198 1 1024 1.494 685.440 1 1024 1.332 768.743 1 2048 2.970 689.567 1 2048 2.635 777.229 1 4096 5.925 691.315 1 4096 5.265 777.968 1 8192 11.828 692.597 1 8192 10.528 778.127 1 16384 23.636 693.177 1 16384 21.050 778.338 1 32768 47.346 692.095 1 32768 42.095 778.426 1 65536 94.561 693.056 1 65536 84.189 778.440 1 131072 188.996 693.518 1 131072 168.367 778.489 1 262144 378.071 693.373 1 262144 336.740 778.476 1 524288 757.005 692.582 1 524288 676.697 774.775 1 1048576 1525.006 687.588 1 1048576 1350.963 776.169 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 594.432 148.471 693.518 715.003 305.040 778.489 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 2 4 0.028 143.395 2 4 0.013 305.040 2 8 0.032 248.551 2 8 0.018 441.506 2 16 0.043 372.827 2 16 0.027 593.884 2 32 0.078 410.452 2 32 0.044 725.501 2 64 0.119 537.947 2 64 0.095 674.461 2 128 0.221 579.149 2 128 0.186 687.415 2 256 0.422 606.634 2 256 0.366 699.506 2 512 0.827 619.050 2 512 0.728 703.401 2 1024 1.635 626.271 2 1024 1.450 706.293 2 2048 3.262 627.827 2 2048 2.894 707.689 2 4096 6.488 631.334 2 4096 5.787 707.806 2 8192 12.961 632.043 2 8192 11.569 708.112 2 16384 25.904 632.491 2 16384 23.125 708.499 2 32768 51.947 630.795 2 32768 46.259 708.357 2 65536 103.663 632.203 2 65536 92.485 708.613 2 131072 207.166 632.691 2 131072 185.093 708.142 2 262144 414.667 632.180 2 262144 369.977 708.541 2 524288 829.721 631.885 2 524288 740.741 707.789 2 1048576 1679.107 624.484 2 1048576 1484.277 706.456 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 550.116 143.395 632.691 664.053 305.040 725.501 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 3 4 0.027 147.169 3 4 0.013 310.689 3 8 0.032 250.406 3 8 0.017 472.598 3 16 0.043 372.827 3 16 0.026 615.678 3 32 0.078 410.452 3 32 0.044 729.444 3 64 0.128 499.880 3 64 0.101 634.599 3 128 0.244 524.288 3 128 0.206 621.378 3 256 0.505 506.960 3 256 0.442 579.149 3 512 0.997 513.629 3 512 0.881 581.186 3 1024 1.938 528.351 3 1024 1.714 597.353 3 2048 3.829 534.898 3 2048 3.381 605.735 3 4096 7.590 539.654 3 4096 6.714 610.081 3 8192 15.126 541.584 3 8192 13.386 611.982 3 16384 30.191 542.679 3 16384 26.726 613.036 3 32768 60.437 542.185 3 32768 53.400 613.633 3 65536 121.305 540.258 3 65536 107.031 612.309 3 131072 242.369 540.795 3 131072 213.516 613.874 3 262144 482.467 543.341 3 262144 426.947 613.996 3 524288 965.553 542.992 3 524288 854.129 613.828 3 1048576 1960.348 534.893 3 1048576 1715.181 611.350 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 481.960 147.169 543.341 592.732 310.689 729.444 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 4 4 0.027 148.471 4 4 0.012 328.965 4 8 0.033 241.399 4 8 0.018 441.506 4 16 0.043 372.827 4 16 0.027 593.884 4 32 0.077 415.535 4 32 0.045 710.147 4 64 0.124 516.222 4 64 0.101 633.102 4 128 0.253 506.005 4 128 0.200 639.894 4 256 0.431 593.884 4 256 0.368 695.879 4 512 0.807 634.412 4 512 0.704 727.221 4 1024 1.561 655.920 4 1024 1.377 743.717 4 2048 3.067 667.750 4 2048 2.727 751.000 4 4096 6.079 673.800 4 4096 5.418 755.990 4 8192 12.108 676.586 4 8192 10.801 758.443 4 16384 24.162 678.088 4 16384 21.574 759.432 4 32768 48.336 677.924 4 32768 43.113 760.049 4 65536 96.561 678.701 4 65536 86.191 760.356 4 131072 193.791 676.357 4 131072 172.396 760.295 4 262144 386.033 679.071 4 262144 344.813 760.250 4 524288 772.356 678.816 4 524288 690.911 758.836 4 1048576 1580.433 663.474 4 1048576 1385.700 756.712 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 570.276 148.471 679.071 689.246 328.965 760.356 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 5 4 0.027 148.471 5 4 0.012 335.544 5 8 0.032 250.406 5 8 0.018 441.506 5 16 0.043 372.827 5 16 0.027 593.884 5 32 0.086 371.794 5 32 0.053 604.584 5 64 0.146 438.620 5 64 0.113 566.320 5 128 0.277 462.023 5 128 0.230 556.343 5 256 0.521 491.415 5 256 0.469 545.878 5 512 1.014 504.934 5 512 0.921 555.911 5 1024 2.000 511.976 5 1024 1.826 560.774 5 2048 3.977 514.984 5 2048 3.634 563.570 5 4096 7.921 517.108 5 4096 7.255 564.589 5 8192 15.811 518.121 5 8192 14.495 565.155 5 16384 31.596 518.548 5 16384 29.124 562.560 5 32768 70.309 466.057 5 32768 63.644 514.864 5 65536 135.624 483.219 5 65536 123.440 530.914 5 131072 267.472 490.040 5 131072 236.661 553.839 5 262144 526.720 497.691 5 262144 471.095 556.457 5 524288 1074.556 487.911 5 524288 950.407 551.646 5 1048576 2173.917 482.344 5 1048576 1932.953 542.474 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 448.868 148.471 518.548 540.358 335.544 604.584 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 6 4 0.027 148.471 6 4 0.013 305.040 6 8 0.032 248.551 6 8 0.017 466.034 6 16 0.043 370.767 6 16 0.026 615.678 6 32 0.085 375.960 6 32 0.056 571.139 6 64 0.147 435.066 6 64 0.109 586.104 6 128 0.286 447.392 6 128 0.235 544.494 6 256 0.534 479.349 6 256 0.459 557.788 6 512 1.033 495.611 6 512 0.906 565.127 6 1024 2.029 504.697 6 1024 1.812 565.127 6 2048 4.024 508.943 6 2048 3.595 569.662 6 4096 9.083 450.951 6 4096 7.178 570.646 6 8192 17.469 468.940 6 8192 15.801 518.450 6 16384 34.083 480.707 6 16384 30.045 545.315 6 32768 67.117 488.222 6 32768 60.081 545.397 6 65536 138.381 473.591 6 65536 128.240 511.042 6 131072 274.381 477.700 6 131072 247.510 529.563 6 262144 542.428 483.279 6 262144 484.057 541.556 6 524288 1077.919 486.389 6 524288 991.285 528.897 6 1048576 2217.223 472.923 6 1048576 1973.013 531.459 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 436.711 148.471 508.943 535.185 305.040 615.678 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 7 4 0.027 148.471 7 4 0.013 310.689 7 8 0.032 250.406 7 8 0.017 466.034 7 16 0.043 370.767 7 16 0.027 588.674 7 32 0.073 438.620 7 32 0.055 583.555 7 64 0.169 378.611 7 64 0.121 529.458 7 128 0.284 450.773 7 128 0.245 522.756 7 256 0.554 462.023 7 256 0.487 525.571 7 512 1.090 469.703 7 512 0.992 516.098 7 1024 2.166 472.754 7 1024 1.931 530.308 7 2048 4.317 474.399 7 2048 3.862 530.308 7 4096 8.623 475.015 7 4096 7.709 531.325 7 8192 17.232 475.396 7 8192 15.423 531.153 7 16384 34.453 475.544 7 16384 30.961 529.185 7 32768 69.383 472.278 7 32768 61.836 529.918 7 65536 137.933 475.129 7 65536 123.310 531.473 7 131072 278.625 470.424 7 131072 247.485 529.616 7 262144 552.477 474.489 7 262144 493.393 531.309 7 524288 1104.441 474.709 7 524288 987.434 530.960 7 1048576 2253.525 465.305 7 1048576 1985.471 528.125 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 430.254 148.471 475.544 519.817 310.689 588.674 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 8 4 0.027 148.471 8 4 0.013 310.689 8 8 0.032 250.406 8 8 0.017 472.598 8 16 0.043 372.827 8 16 0.027 593.884 8 32 0.070 456.523 8 32 0.053 601.873 8 64 0.139 459.650 8 64 0.129 496.184 8 128 0.255 502.218 8 128 0.230 556.343 8 256 0.483 529.981 8 256 0.434 589.644 8 512 0.940 544.632 8 512 0.841 608.870 8 1024 1.853 552.621 8 1024 1.697 603.395 8 2048 3.681 556.379 8 2048 3.287 623.046 8 4096 7.346 557.589 8 4096 6.549 625.428 8 8192 14.648 559.259 8 8192 13.078 626.397 8 16384 29.296 559.259 8 16384 26.202 625.297 8 32768 58.548 559.678 8 32768 52.205 627.678 8 65536 117.077 559.768 8 65536 104.514 627.054 8 131072 234.056 560.003 8 131072 208.819 627.682 8 262144 468.050 560.077 8 262144 417.721 627.558 8 524288 938.703 558.524 8 524288 835.484 627.526 8 1048576 1928.897 543.614 8 1048576 1680.450 623.985 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 494.288 148.471 560.077 583.954 310.689 627.682 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 9 4 0.027 147.169 9 4 0.013 310.689 9 8 0.032 250.406 9 8 0.017 472.598 9 16 0.047 340.654 9 16 0.034 469.293 9 32 0.080 399.458 9 32 0.074 432.960 9 64 0.154 415.535 9 64 0.135 474.268 9 128 0.290 441.506 9 128 0.277 462.421 9 256 0.589 434.537 9 256 0.530 483.015 9 512 1.173 436.480 9 512 1.038 493.221 9 1024 2.337 438.173 9 1024 2.063 496.356 9 2048 4.665 439.001 9 2048 4.085 501.339 9 4096 9.323 439.349 9 4096 8.151 502.512 9 8192 18.635 439.608 9 8192 16.278 503.255 9 16384 37.281 439.476 9 16384 32.533 503.613 9 32768 74.539 439.609 9 32768 65.481 500.419 9 65536 150.348 435.895 9 65536 130.056 503.906 9 131072 298.104 439.685 9 131072 260.176 503.782 9 262144 596.209 439.685 9 262144 521.282 502.883 9 524288 1193.700 439.213 9 524288 1041.119 503.581 9 1048576 2439.309 429.866 9 1048576 2092.816 501.036 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 404.490 147.169 441.506 480.060 310.689 503.906 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 10 4 0.028 143.395 10 4 0.013 305.040 10 8 0.032 248.551 10 8 0.018 441.506 10 16 0.048 333.875 10 16 0.034 472.598 10 32 0.085 377.016 10 32 0.065 491.640 10 64 0.163 392.449 10 64 0.133 481.067 10 128 0.327 391.591 10 128 0.279 458.864 10 256 0.640 400.053 10 256 0.554 462.222 10 512 1.260 406.336 10 512 1.101 465.025 10 1024 2.511 407.802 10 1024 2.193 466.895 10 2048 4.982 411.080 10 2048 4.383 467.251 10 4096 9.950 411.652 10 4096 8.753 467.963 10 8192 19.881 412.051 10 8192 17.494 468.276 10 16384 39.764 412.029 10 16384 34.987 468.289 10 32768 79.504 412.155 10 32768 70.170 466.979 10 65536 159.068 412.000 10 65536 140.050 467.947 10 131072 317.893 412.315 10 131072 279.915 468.256 10 262144 637.105 411.461 10 262144 560.243 467.911 10 524288 1273.639 411.646 10 524288 1120.178 468.040 10 1048576 2595.223 404.041 10 1048576 2252.180 465.583 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 379.553 143.395 412.315 459.018 305.040 491.640 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 11 4 0.027 148.471 11 4 0.013 310.689 11 8 0.032 250.406 11 8 0.018 441.506 11 16 0.052 307.839 11 16 0.037 432.960 11 32 0.084 381.300 11 32 0.065 491.640 11 64 0.174 368.224 11 64 0.145 441.506 11 128 0.313 408.889 11 128 0.263 486.737 11 256 0.615 416.179 11 256 0.527 485.856 11 512 1.220 419.676 11 512 1.042 491.415 11 1024 2.408 425.244 11 1024 2.092 489.511 11 2048 4.801 426.575 11 2048 4.178 490.181 11 4096 9.617 425.919 11 4096 8.351 490.475 11 8192 19.139 428.025 11 8192 16.694 490.713 11 16384 38.281 427.993 11 16384 33.403 490.496 11 32768 76.606 427.747 11 32768 66.794 490.584 11 65536 153.156 427.903 11 65536 133.597 490.549 11 131072 306.809 427.210 11 131072 267.549 489.899 11 262144 613.355 427.394 11 262144 534.567 490.386 11 524288 1225.689 427.750 11 524288 1069.738 490.109 11 1048576 2502.610 418.993 11 1048576 2150.700 487.551 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 389.039 148.471 428.025 472.251 310.689 491.640 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 12 4 0.027 147.169 12 4 0.013 310.689 12 8 0.032 250.406 12 8 0.018 441.506 12 16 0.052 306.433 12 16 0.037 432.960 12 32 0.084 381.300 12 32 0.065 491.640 12 64 0.191 335.125 12 64 0.168 381.300 12 128 0.321 398.864 12 128 0.292 438.262 12 256 0.614 416.987 12 256 0.547 468.065 12 512 1.200 426.681 12 512 1.060 483.015 12 1024 2.373 431.525 12 1024 2.085 491.134 12 2048 4.723 433.638 12 2048 4.134 495.411 12 4096 9.415 435.055 12 4096 8.237 497.275 12 8192 18.801 435.722 12 8192 16.439 498.328 12 16384 37.590 435.860 12 16384 32.841 498.889 12 32768 75.143 436.075 12 32768 65.643 499.186 12 65536 150.246 436.191 12 65536 131.250 499.322 12 131072 300.503 436.175 12 131072 262.506 499.310 12 262144 600.866 436.277 12 262144 527.718 496.750 12 524288 1205.748 434.824 12 524288 1052.207 498.275 12 1048576 2461.037 426.071 12 1048576 2115.023 495.775 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 391.599 147.169 436.277 469.321 310.689 499.322 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 13 4 0.027 148.471 13 4 0.012 328.965 13 8 0.032 250.406 13 8 0.017 472.598 13 16 0.052 307.839 13 16 0.037 432.960 13 32 0.091 352.278 13 32 0.082 390.168 13 64 0.179 357.437 13 64 0.147 435.066 13 128 0.336 381.030 13 128 0.280 457.301 13 256 0.660 387.913 13 256 0.562 455.554 13 512 1.318 388.474 13 512 1.126 454.686 13 1024 2.610 392.342 13 1024 2.252 454.686 13 2048 5.213 392.862 13 2048 4.505 454.614 13 4096 10.428 392.781 13 4096 9.016 454.314 13 8192 20.809 393.677 13 8192 18.032 454.302 13 16384 41.636 393.506 13 16384 36.065 454.290 13 32768 83.317 393.293 13 32768 72.140 454.228 13 65536 166.502 393.605 13 65536 144.313 454.124 13 131072 334.595 391.733 13 131072 288.627 454.122 13 262144 665.967 393.629 13 262144 577.196 454.168 13 524288 1334.337 392.920 13 524288 1154.806 454.005 13 1048576 2715.141 386.196 13 1048576 2326.389 450.731 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 362.652 148.471 393.677 443.204 328.965 472.598 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 14 4 0.027 148.471 14 4 0.013 305.040 14 8 0.033 243.148 14 8 0.018 447.392 14 16 0.052 307.839 14 16 0.037 432.960 14 32 0.093 344.148 14 32 0.071 451.912 14 64 0.197 324.589 14 64 0.165 387.913 14 128 0.376 340.438 14 128 0.326 392.737 14 256 0.743 344.590 14 256 0.647 395.631 14 512 1.445 354.370 14 512 1.399 365.965 14 1024 2.872 356.547 14 1024 2.944 347.827 14 2048 5.728 357.542 14 2048 5.688 360.059 14 4096 11.740 348.887 14 4096 10.232 400.314 14 8192 25.411 322.381 14 8192 23.067 355.139 14 16384 47.550 344.564 14 16384 40.953 400.069 14 32768 93.434 350.708 14 32768 88.061 372.105 14 65536 185.659 352.991 14 65536 176.496 371.317 14 131072 379.989 344.936 14 131072 341.105 384.257 14 262144 758.064 345.807 14 262144 686.076 382.092 14 524288 1516.231 345.784 14 524288 1366.866 383.569 14 1048576 3070.055 341.550 14 1048576 2764.652 379.280 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 327.331 148.471 357.542 385.030 305.040 451.912 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 15 4 0.027 148.471 15 4 0.013 310.689 15 8 0.032 250.406 15 8 0.017 472.598 15 16 0.052 307.839 15 16 0.037 432.960 15 32 0.093 344.148 15 32 0.072 444.430 15 64 0.183 349.525 15 64 0.149 429.497 15 128 0.352 363.734 15 128 0.294 435.418 15 256 0.684 374.387 15 256 0.595 430.185 15 512 1.350 379.280 15 512 1.165 439.518 15 1024 2.680 382.081 15 1024 2.326 440.239 15 2048 5.345 383.154 15 2048 4.647 440.713 15 4096 10.665 384.062 15 4096 9.293 440.758 15 8192 21.350 383.702 15 8192 18.581 440.883 15 16384 42.655 384.105 15 16384 37.152 440.999 15 32768 85.324 384.043 15 32768 74.306 440.987 15 65536 170.602 384.145 15 65536 148.663 440.836 15 131072 341.122 384.238 15 131072 297.659 440.343 15 262144 683.628 383.460 15 262144 594.695 440.804 15 524288 1366.696 383.617 15 524288 1191.046 440.191 15 1048576 2789.567 375.892 15 1048576 2398.743 437.136 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 354.226 148.471 384.238 433.641 310.689 472.598 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 16 4 0.027 147.169 16 4 0.012 335.544 16 8 0.032 250.406 16 8 0.017 472.598 16 16 0.049 327.360 16 16 0.035 456.523 16 32 0.084 381.300 16 32 0.067 477.643 16 64 0.161 397.094 16 64 0.138 464.421 16 128 0.291 439.698 16 128 0.255 501.749 16 256 0.576 444.614 16 256 0.489 523.521 16 512 1.068 479.349 16 512 0.959 533.934 16 1024 2.106 486.241 16 1024 1.897 539.840 16 2048 4.185 489.343 16 2048 3.774 542.636 16 4096 8.332 491.598 16 4096 7.531 543.890 16 8192 16.644 492.189 16 8192 15.041 544.641 16 16384 33.239 492.917 16 16384 30.057 545.098 16 32768 66.490 492.826 16 32768 60.093 545.287 16 65536 133.111 492.341 16 65536 120.844 542.320 16 131072 266.013 492.728 16 131072 241.503 542.734 16 262144 533.099 491.736 16 262144 481.522 544.407 16 524288 1064.881 492.344 16 524288 961.965 545.018 16 1048576 2207.297 475.050 16 1048576 1944.838 539.159 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 434.542 147.169 492.917 512.682 335.544 545.287 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 17 4 0.027 148.471 17 4 0.013 305.040 17 8 0.036 222.215 17 8 0.022 364.722 17 16 0.056 285.570 17 16 0.056 285.570 17 32 0.107 298.926 17 32 0.084 381.300 17 64 0.185 345.922 17 64 0.148 432.263 17 128 0.350 365.716 17 128 0.293 436.836 17 256 0.685 373.605 17 256 0.580 441.324 17 512 1.360 376.487 17 512 1.156 442.871 17 1024 2.689 380.827 17 1024 2.308 443.695 17 2048 5.366 381.656 17 2048 4.610 444.269 17 4096 10.712 382.378 17 4096 9.219 444.303 17 8192 21.433 382.212 17 8192 18.446 444.108 17 16384 42.810 382.715 17 16384 36.861 444.481 17 32768 85.677 382.460 17 32768 73.732 444.421 17 65536 171.464 382.214 17 65536 147.532 444.216 17 131072 343.434 381.651 17 131072 295.092 444.173 17 262144 685.978 382.146 17 262144 589.976 444.330 17 524288 1373.748 381.648 17 524288 1181.269 443.835 17 1048576 2795.710 375.066 17 1048576 2383.354 439.958 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 347.994 148.471 382.715 419.564 285.570 444.481 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 18 4 0.027 147.169 18 4 0.013 310.689 18 8 0.035 228.261 18 8 0.022 360.800 18 16 0.055 291.778 18 16 0.056 285.570 18 32 0.108 296.286 18 32 0.084 380.220 18 64 0.196 326.564 18 64 0.164 390.168 18 128 0.375 341.521 18 128 0.322 397.388 18 256 0.735 348.391 18 256 0.638 401.249 18 512 1.466 349.241 18 512 1.270 403.132 18 1024 2.893 353.961 18 1024 2.536 403.776 18 2048 5.774 354.692 18 2048 5.066 404.251 18 4096 11.527 355.338 18 4096 10.260 399.225 18 8192 23.064 355.187 18 8192 20.261 404.327 18 16384 46.089 355.485 18 16384 40.556 403.985 18 32768 92.281 355.089 18 32768 81.025 404.418 18 65536 186.060 352.230 18 65536 163.046 401.948 18 131072 368.876 355.328 18 131072 324.255 404.225 18 262144 738.942 354.756 18 262144 650.631 402.907 18 524288 1480.500 354.129 18 524288 1298.677 403.709 18 1048576 3007.782 348.621 18 1048576 2613.999 401.139 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 327.580 147.169 355.485 387.533 285.570 404.418 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 19 4 0.027 147.169 19 4 0.013 305.040 19 8 0.035 228.261 19 8 0.022 360.800 19 16 0.055 290.515 19 16 0.055 290.515 19 32 0.100 319.566 19 32 0.092 348.617 19 64 0.186 344.148 19 64 0.194 329.773 19 128 0.346 369.746 19 128 0.321 398.568 19 256 0.697 367.342 19 256 0.611 418.939 19 512 1.375 372.310 19 512 1.202 425.919 19 1024 2.732 374.812 19 1024 2.352 435.374 19 2048 5.453 375.566 19 2048 4.674 438.173 19 4096 10.894 375.985 19 4096 9.320 439.495 19 8192 21.786 376.018 19 8192 18.647 439.315 19 16384 43.504 376.609 19 16384 37.180 440.668 19 32768 87.056 376.401 19 32768 74.331 440.839 19 65536 174.567 375.420 19 65536 148.771 440.516 19 131072 348.117 376.517 19 131072 297.408 440.714 19 262144 697.641 375.758 19 262144 594.740 440.771 19 524288 1393.834 376.148 19 524288 1190.614 440.351 19 1048576 2846.720 368.345 19 1048576 2402.014 436.540 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 345.612 147.169 376.609 405.838 290.515 440.839 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 20 4 0.027 148.471 20 4 0.013 310.689 20 8 0.036 222.215 20 8 0.022 364.722 20 16 0.056 285.570 20 16 0.055 291.778 20 32 0.100 319.566 20 32 0.077 415.535 20 64 0.193 331.402 20 64 0.152 420.745 20 128 0.350 365.716 20 128 0.290 441.143 20 256 0.674 379.817 20 256 0.564 453.822 20 512 1.322 387.283 20 512 1.114 459.650 20 1024 2.628 389.637 20 1024 2.213 462.720 20 2048 5.211 393.024 20 2048 4.414 463.970 20 4096 10.400 393.844 20 4096 8.809 464.974 20 8192 20.784 394.151 20 8192 17.609 465.213 20 16384 41.533 394.482 20 16384 35.188 465.614 20 32768 83.111 394.268 20 32768 70.372 465.639 20 65536 166.091 394.579 20 65536 140.967 464.903 20 131072 332.274 394.470 20 131072 281.875 465.001 20 262144 665.309 394.018 20 262144 563.255 465.409 20 524288 1329.816 394.256 20 524288 1127.943 464.818 20 1048576 2723.622 384.993 20 1048576 2274.701 460.973 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 355.882 148.471 394.579 435.122 291.778 465.639 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 21 4 0.028 143.395 21 4 0.013 310.689 21 8 0.036 222.215 21 8 0.022 364.722 21 16 0.055 291.778 21 16 0.055 290.515 21 32 0.112 286.179 21 32 0.101 316.551 21 64 0.190 336.807 21 64 0.181 353.670 21 128 0.354 361.529 21 128 0.299 428.127 21 256 0.704 363.734 21 256 0.602 425.244 21 512 1.377 371.859 21 512 1.178 434.625 21 1024 2.729 375.237 21 1024 2.350 435.772 21 2048 5.433 376.966 21 2048 4.674 438.173 21 4096 10.845 377.679 21 4096 9.327 439.158 21 8192 21.689 377.704 21 8192 18.640 439.484 21 16384 43.311 378.288 21 16384 37.267 439.639 21 32768 86.731 377.812 21 32768 74.946 437.222 21 65536 173.319 378.123 21 65536 149.082 439.597 21 131072 346.389 378.395 21 131072 298.139 439.634 21 262144 694.803 377.293 21 262144 596.239 439.663 21 524288 1386.296 378.193 21 524288 1195.606 438.512 21 1048576 2837.916 369.488 21 1048576 2411.740 434.780 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 343.299 143.395 378.395 407.672 290.515 439.663 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 22 4 0.027 148.471 22 4 0.012 328.965 22 8 0.036 222.215 22 8 0.021 381.300 22 16 0.065 245.820 22 16 0.048 333.875 22 32 0.108 296.286 22 32 0.114 280.204 22 64 0.191 335.125 22 64 0.158 404.880 22 128 0.367 348.617 22 128 0.310 412.978 22 256 0.723 354.136 22 256 0.616 415.535 22 512 1.417 361.347 22 512 1.230 416.260 22 1024 2.831 361.712 22 1024 2.450 417.961 22 2048 5.626 364.027 22 2048 4.894 418.470 22 4096 11.230 364.738 22 4096 9.787 418.511 22 8192 22.471 364.560 22 8192 19.569 418.618 22 16384 44.969 364.339 22 16384 39.133 418.674 22 32768 89.851 364.692 22 32768 78.300 418.493 22 65536 179.662 364.774 22 65536 156.593 418.511 22 131072 359.938 364.151 22 131072 313.572 417.997 22 262144 718.552 364.823 22 262144 626.413 418.484 22 524288 1442.930 363.350 22 524288 1255.769 417.504 22 1048576 2939.048 356.774 22 1048576 2529.872 414.478 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 332.103 148.471 364.823 398.510 280.204 418.674 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 23 4 0.027 148.471 23 4 0.013 305.040 23 8 0.035 229.825 23 8 0.022 364.722 23 16 0.065 245.820 23 16 0.048 332.222 23 32 0.107 298.926 23 32 0.082 390.168 23 64 0.204 313.960 23 64 0.198 323.027 23 128 0.401 319.186 23 128 0.355 360.558 23 256 0.786 325.672 23 256 0.810 315.992 23 512 1.556 329.066 23 512 1.430 358.093 23 1024 3.096 330.764 23 1024 2.832 361.590 23 2048 6.539 313.193 23 2048 5.707 358.856 23 4096 12.910 317.270 23 4096 11.318 361.895 23 8192 27.226 300.889 23 8192 22.631 361.982 23 16384 53.176 308.109 23 16384 49.026 334.190 23 32768 105.267 311.284 23 32768 93.433 350.711 23 65536 211.971 309.175 23 65536 186.034 352.280 23 131072 411.100 318.832 23 131072 369.387 354.837 23 262144 821.838 318.973 23 262144 740.270 354.119 23 524288 1655.481 316.698 23 524288 1505.195 348.319 23 1048576 3366.591 311.465 23 1048576 3044.956 344.365 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 298.294 148.471 330.764 349.103 305.040 390.168 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 24 4 0.027 148.471 24 4 0.013 305.040 24 8 0.036 222.215 24 8 0.022 360.800 24 16 0.065 245.820 24 16 0.048 333.875 24 32 0.108 296.286 24 32 0.084 380.220 24 64 0.195 328.161 24 64 0.162 394.758 24 128 0.365 350.667 24 128 0.307 417.149 24 256 0.705 363.119 24 256 0.597 428.811 24 512 1.384 370.001 24 512 1.177 434.977 24 1024 2.751 372.245 24 1024 2.338 437.994 24 2048 5.458 375.221 24 2048 4.664 439.091 24 4096 10.894 375.985 24 4096 9.304 440.250 24 8192 21.780 376.125 24 8192 18.593 440.594 24 16384 43.514 376.522 24 16384 37.169 440.798 24 32768 87.038 376.480 24 32768 74.369 440.613 24 65536 174.042 376.553 24 65536 149.258 439.079 24 131072 348.691 375.897 24 131072 297.366 440.777 24 262144 697.048 376.077 24 262144 596.538 439.442 24 524288 1394.133 376.067 24 524288 1191.294 440.100 24 1048576 2856.055 367.141 24 1048576 2419.129 433.452 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 339.424 148.471 376.553 415.148 305.040 440.798 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 25 4 0.027 148.471 25 4 0.012 328.965 25 8 0.036 222.215 25 8 0.022 364.722 25 16 0.059 271.696 25 16 0.043 370.767 25 32 0.115 277.883 25 32 0.094 340.654 25 64 0.210 305.040 25 64 0.193 331.402 25 128 0.406 315.250 25 128 0.358 357.437 25 256 0.795 321.962 25 256 0.710 360.558 25 512 1.575 325.081 25 512 1.415 361.834 25 1024 3.142 325.895 25 1024 2.826 362.322 25 2048 6.251 327.635 25 2048 5.651 362.414 25 4096 12.490 327.941 25 4096 11.294 362.666 25 8192 24.990 327.810 25 8192 22.581 362.781 25 16384 50.903 321.867 25 16384 45.203 362.454 25 32768 100.072 327.444 25 32768 90.366 362.615 25 65536 199.843 327.937 25 65536 180.706 362.666 25 131072 399.659 327.959 25 131072 361.439 362.639 25 262144 800.159 327.615 25 262144 725.020 361.568 25 524288 1603.645 326.935 25 524288 1447.623 362.172 25 1048576 3261.287 321.522 25 1048576 2920.140 359.084 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 304.114 148.471 327.959 357.880 328.965 370.767 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 26 4 0.027 148.471 26 4 0.012 335.544 26 8 0.036 222.215 26 8 0.022 364.722 26 16 0.060 267.366 26 16 0.044 362.751 26 32 0.112 285.570 26 32 0.119 268.973 26 64 0.229 279.620 26 64 0.210 304.694 26 128 0.442 289.574 26 128 0.415 308.369 26 256 0.879 291.224 26 256 0.823 311.049 26 512 1.720 297.642 26 512 1.641 311.998 26 1024 3.423 299.155 26 1024 3.283 311.908 26 2048 6.877 297.796 26 2048 7.563 270.796 26 4096 13.655 299.959 26 4096 15.465 264.856 26 8192 27.832 294.340 26 8192 30.945 264.727 26 16384 62.859 260.647 26 16384 54.079 302.964 26 32768 111.779 293.149 26 32768 108.139 303.017 26 65536 224.353 292.111 26 65536 212.073 309.026 26 131072 464.545 282.151 26 131072 443.921 295.260 26 262144 922.975 284.021 26 262144 867.054 302.339 26 524288 1849.584 283.463 26 524288 1739.471 301.407 26 1048576 3750.089 279.614 26 1048576 3536.532 296.498 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 276.215 148.471 299.959 304.784 264.727 364.722 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 27 4 0.027 148.471 27 4 0.012 328.965 27 8 0.036 222.215 27 8 0.022 364.722 27 16 0.059 270.600 27 16 0.043 370.767 27 32 0.112 286.179 27 32 0.094 340.654 27 64 0.221 289.574 27 64 0.224 285.874 27 128 0.427 299.760 27 128 0.392 326.564 27 256 0.837 305.909 27 256 0.790 324.002 27 512 1.658 308.768 27 512 1.554 329.470 27 1024 3.301 310.196 27 1024 3.108 329.470 27 2048 6.584 311.060 27 2048 6.207 329.951 27 4096 13.156 311.342 27 4096 12.404 330.217 27 8192 26.326 311.176 27 8192 24.803 330.284 27 16384 52.692 310.939 27 16384 49.605 330.290 27 32768 106.354 308.103 27 32768 99.223 330.246 27 65536 210.708 311.027 27 65536 198.506 330.146 27 131072 421.051 311.297 27 131072 398.058 329.279 27 262144 842.157 311.277 27 262144 794.100 330.115 27 524288 1694.348 309.433 27 524288 1594.730 328.763 27 1048576 3436.885 305.095 27 1048576 3209.185 326.742 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 291.707 148.471 311.342 331.396 285.874 370.767 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 28 4 0.027 148.471 28 4 0.013 305.040 28 8 0.035 228.261 28 8 0.022 364.722 28 16 0.059 271.696 28 16 0.043 370.767 28 32 0.114 280.204 28 32 0.099 322.639 28 64 0.225 284.360 28 64 0.202 316.925 28 128 0.421 304.004 28 128 0.388 329.773 28 256 0.815 314.051 28 256 0.761 336.491 28 512 1.606 318.807 28 512 1.508 339.523 28 1024 3.194 320.616 28 1024 3.002 341.114 28 2048 6.346 322.724 28 2048 5.994 341.670 28 4096 12.698 322.572 28 4096 11.970 342.188 28 8192 25.348 323.182 28 8192 23.932 342.303 28 16384 50.681 323.278 28 16384 47.837 342.496 28 32768 101.274 323.558 28 32768 95.999 341.337 28 65536 202.651 323.393 28 65536 191.445 342.323 28 131072 405.057 323.589 28 131072 382.771 342.429 28 262144 812.987 322.445 28 262144 765.838 342.297 28 524288 1634.511 320.761 28 524288 1537.467 341.008 28 1048576 3318.936 315.937 28 1048576 3096.566 338.625 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 299.574 148.471 323.589 339.141 305.040 370.767 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 29 4 0.027 147.169 29 4 0.012 335.544 29 8 0.035 228.261 29 8 0.022 364.722 29 16 0.059 271.696 29 16 0.043 372.827 29 32 0.116 275.601 29 32 0.112 285.570 29 64 0.216 296.286 29 64 0.205 312.134 29 128 0.414 309.257 29 128 0.379 337.655 29 256 0.824 310.689 29 256 0.755 339.041 29 512 1.608 318.429 29 512 1.505 340.168 29 1024 3.202 319.780 29 1024 3.009 340.303 29 2048 6.386 320.699 29 2048 6.009 340.830 29 4096 12.761 320.981 29 4096 12.009 341.073 29 8192 25.533 320.840 29 8192 24.012 341.165 29 16384 51.092 320.677 29 16384 48.025 341.155 29 32768 102.118 320.884 29 32768 96.046 341.170 29 65536 204.222 320.906 29 65536 192.165 341.040 29 131072 408.340 320.987 29 131072 384.495 340.894 29 262144 816.722 320.971 29 262144 770.092 340.406 29 524288 1638.791 319.924 29 524288 1539.730 340.506 29 1048576 3342.405 313.719 29 1048576 3120.469 336.032 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 298.829 147.169 320.987 338.539 285.570 372.827 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 30 4 0.027 147.169 30 4 0.013 305.040 30 8 0.036 222.215 30 8 0.021 377.016 30 16 0.060 266.305 30 16 0.044 364.722 30 32 0.117 273.914 30 32 0.112 285.570 30 64 0.208 307.839 30 64 0.185 345.922 30 128 0.410 312.134 30 128 0.376 340.438 30 256 0.791 323.709 30 256 0.734 348.731 30 512 1.556 329.015 30 512 1.460 350.724 30 1024 3.087 331.709 30 1024 2.891 354.195 30 2048 6.153 332.853 30 2048 5.768 355.059 30 4096 12.280 333.551 30 4096 11.524 355.433 30 8192 24.550 333.687 30 8192 23.081 354.923 30 16384 49.108 333.632 30 16384 46.055 355.748 30 32768 98.126 333.938 30 32768 92.102 355.779 30 65536 196.164 334.088 30 65536 184.258 355.675 30 131072 392.319 334.095 30 131072 369.767 354.472 30 262144 784.638 334.095 30 262144 737.329 355.532 30 524288 1572.293 333.454 30 524288 1476.966 354.976 30 1048576 3220.007 325.644 30 1048576 2986.545 351.100 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 307.529 147.169 334.095 348.477 285.570 377.016 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 31 4 0.027 147.169 31 4 0.012 335.544 31 8 0.035 229.825 31 8 0.022 360.800 31 16 0.059 270.600 31 16 0.043 372.827 31 32 0.116 276.168 31 32 0.112 285.570 31 64 0.209 306.084 31 64 0.199 321.480 31 128 0.393 325.771 31 128 0.358 357.675 31 256 0.780 328.161 31 256 0.722 354.487 31 512 1.541 332.274 31 512 1.425 359.291 31 1024 3.038 337.072 31 1024 2.836 361.073 31 2048 6.054 338.293 31 2048 5.661 361.773 31 4096 12.079 339.101 31 4096 11.303 362.383 31 8192 24.150 339.215 31 8192 22.594 362.575 31 16384 48.275 339.389 31 16384 45.176 362.670 31 32768 96.539 339.428 31 32768 90.350 362.679 31 65536 193.532 338.631 31 65536 180.807 362.464 31 131072 385.986 339.577 31 131072 361.506 362.572 31 262144 773.377 338.960 31 262144 724.402 361.876 31 524288 1553.586 337.470 31 524288 1452.275 361.012 31 1048576 3169.442 330.839 31 1048576 2928.563 358.051 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 312.317 147.169 339.577 354.042 285.570 372.827 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 32 4 0.027 148.471 32 4 0.013 305.040 32 8 0.033 241.399 32 8 0.020 404.270 32 16 0.051 313.593 32 16 0.037 432.960 32 32 0.094 340.654 32 32 0.091 351.355 32 64 0.162 394.758 32 64 0.153 418.124 32 128 0.297 430.876 32 128 0.276 463.619 32 256 0.569 450.018 32 256 0.523 489.399 32 512 1.113 460.044 32 512 1.017 503.395 32 1024 2.210 463.369 32 1024 2.004 510.941 32 2048 4.372 468.448 32 2048 3.984 514.060 32 4096 8.748 468.231 32 4096 7.930 516.517 32 8192 17.427 470.076 32 8192 15.876 515.997 32 16384 34.955 468.717 32 16384 31.646 517.727 32 32768 69.838 469.200 32 32768 63.321 517.489 32 65536 139.646 469.301 32 65536 126.581 517.740 32 131072 279.878 468.319 32 131072 253.256 517.547 32 262144 559.006 468.947 32 262144 507.455 516.586 32 524288 1128.738 464.490 32 524288 1018.699 514.664 32 1048576 2350.357 446.135 32 1048576 2069.995 506.560 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 416.055 148.471 470.076 475.473 305.040 517.740 stats by bits per item pack: unpack: bits avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1 594.432 148.471 693.518 715.003 305.040 778.489 2 550.116 143.395 632.691 664.053 305.040 725.501 3 481.960 147.169 543.341 592.732 310.689 729.444 4 570.276 148.471 679.071 689.246 328.965 760.356 5 448.868 148.471 518.548 540.358 335.544 604.584 6 436.711 148.471 508.943 535.185 305.040 615.678 7 430.254 148.471 475.544 519.817 310.689 588.674 8 494.288 148.471 560.077 583.954 310.689 627.682 9 404.490 147.169 441.506 480.060 310.689 503.906 10 379.553 143.395 412.315 459.018 305.040 491.640 11 389.039 148.471 428.025 472.251 310.689 491.640 12 391.599 147.169 436.277 469.321 310.689 499.322 13 362.652 148.471 393.677 443.204 328.965 472.598 14 327.331 148.471 357.542 385.030 305.040 451.912 15 354.226 148.471 384.238 433.641 310.689 472.598 16 434.542 147.169 492.917 512.682 335.544 545.287 17 347.994 148.471 382.715 419.564 285.570 444.481 18 327.580 147.169 355.485 387.533 285.570 404.418 19 345.612 147.169 376.609 405.838 290.515 440.839 20 355.882 148.471 394.579 435.122 291.778 465.639 21 343.299 143.395 378.395 407.672 290.515 439.663 22 332.103 148.471 364.823 398.510 280.204 418.674 23 298.294 148.471 330.764 349.103 305.040 390.168 24 339.424 148.471 376.553 415.148 305.040 440.798 25 304.114 148.471 327.959 357.880 328.965 370.767 26 276.215 148.471 299.959 304.784 264.727 364.722 27 291.707 148.471 311.342 331.396 285.874 370.767 28 299.574 148.471 323.589 339.141 305.040 370.767 29 298.829 147.169 320.987 338.539 285.570 372.827 30 307.529 147.169 334.095 348.477 285.570 377.016 31 312.317 147.169 339.577 354.042 285.570 372.827 32 416.055 148.471 470.076 475.473 305.040 517.740 stats by size pack: unpack: size(B) avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4 147.629 143.395 148.471 315.310 305.040 335.544 8 237.459 222.215 250.406 412.492 360.800 472.598 16 309.512 245.820 372.827 431.718 285.570 615.678 32 342.467 273.914 456.523 446.923 268.973 729.444 64 370.924 279.620 537.947 436.475 285.874 674.461 128 396.158 289.574 630.130 457.300 308.369 757.223 256 408.519 291.224 661.578 463.461 311.049 768.605 512 417.448 297.642 678.081 469.648 311.998 772.198 1024 422.030 299.155 685.440 472.263 311.908 768.743 2048 423.806 297.796 689.567 473.820 270.796 777.229 4096 422.905 299.959 691.315 475.765 264.856 777.968 8192 422.470 294.340 692.597 473.180 264.727 778.127 16384 422.707 260.647 693.177 475.842 302.964 778.338 32768 422.496 293.149 692.095 473.900 303.017 778.426 65536 422.546 292.111 693.056 473.520 309.026 778.440 131072 422.618 282.151 693.518 474.895 295.260 778.489 262144 423.285 284.021 693.373 475.418 302.339 778.476 524288 422.448 283.463 692.582 474.334 301.407 774.775 1048576 414.146 279.614 687.588 470.980 296.498 776.169 real 5m20.433s user 5m20.317s sys 0m0.000s ================================================ FILE: benchmark/PackedArraySelfBench-reference-mbp-corei7-M620-2.67GHz.txt ================================================ -- PackedArray self bench ------------------------------------------------------ memcpy: bits size (B) time (µs) speed (B/µs) 32 4 0.016 246.724 32 8 0.011 713.924 32 16 0.012 1342.177 32 32 0.017 1864.135 32 64 0.027 2375.535 32 128 0.017 7561.562 32 256 0.021 12201.612 32 512 0.030 17043.521 32 1024 0.044 23216.039 32 2048 0.081 25264.514 32 4096 0.110 37266.528 32 8192 0.260 31522.696 32 16384 0.609 26896.077 32 32768 2.337 14021.521 32 65536 3.686 17779.942 32 131072 6.601 19856.099 32 262144 23.655 11081.999 32 524288 45.213 11595.961 32 1048576 87.262 12016.422 avg (B/µs) min (B/µs) max (B/µs) 14414.052 246.724 37266.528 loopcpy: bits size (B) time (µs) speed (B/µs) 32 4 0.005 798.915 32 8 0.004 1973.790 32 16 0.006 2684.355 32 32 0.009 3627.506 32 64 0.015 4329.604 32 128 0.009 14510.025 32 256 0.012 21053.761 32 512 0.017 30246.249 32 1024 0.027 37675.152 32 2048 0.046 44507.433 32 4096 0.085 48122.883 32 8192 0.202 40566.397 32 16384 0.479 34205.812 32 32768 1.681 19492.122 32 65536 3.358 19515.648 32 131072 6.530 20072.139 32 262144 21.728 12064.912 32 524288 43.073 12172.097 32 1048576 86.212 12162.773 avg (B/µs) min (B/µs) max (B/µs) 19988.504 798.915 48122.883 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 1 4 0.007 578.525 1 4 0.004 1048.576 1 8 0.009 906.877 1 8 0.006 1342.177 1 16 0.010 1597.830 1 16 0.008 2033.602 1 32 0.016 2003.250 1 32 0.013 2485.513 1 64 0.026 2462.711 1 64 0.025 2556.528 1 128 0.048 2671.000 1 128 0.048 2657.777 1 256 0.092 2781.715 1 256 0.094 2725.233 1 512 0.220 2326.635 1 512 0.201 2547.430 1 1024 0.398 2571.837 1 1024 0.387 2646.314 1 2048 0.750 2730.431 1 2048 0.750 2730.431 1 4096 1.455 2814.988 1 4096 1.501 2728.696 1 8192 3.225 2540.086 1 8192 2.951 2776.096 1 16384 5.797 2826.334 1 16384 8.928 1835.113 1 32768 13.650 2400.597 1 32768 14.454 2267.072 1 65536 30.723 2133.118 1 65536 24.908 2631.141 1 131072 48.208 2718.885 1 131072 49.205 2663.804 1 262144 96.311 2721.846 1 262144 96.511 2716.212 1 524288 210.577 2489.768 1 524288 210.107 2495.337 1 1048576 448.516 2337.878 1 1048576 483.778 2167.474 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2295.490 578.525 2826.334 2371.291 1048.576 2776.096 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 2 4 0.008 493.448 2 4 0.005 798.915 2 8 0.009 883.011 2 8 0.006 1342.177 2 16 0.012 1315.860 2 16 0.009 1766.023 2 32 0.016 2003.250 2 32 0.015 2130.440 2 64 0.028 2274.877 2 64 0.028 2294.320 2 128 0.052 2451.465 2 128 0.053 2418.337 2 256 0.101 2532.410 2 256 0.115 2227.680 2 512 0.227 2255.760 2 512 0.236 2169.175 2 1024 0.421 2432.031 2 1024 0.441 2321.604 2 2048 0.900 2275.479 2 2048 0.848 2415.617 2 4096 1.605 2551.971 2 4096 1.906 2148.827 2 8192 3.889 2106.409 2 8192 3.316 2470.324 2 16384 7.205 2273.973 2 16384 7.768 2109.189 2 32768 13.312 2461.520 2 32768 13.135 2494.717 2 65536 32.031 2046.014 2 65536 27.083 2419.806 2 131072 56.151 2334.271 2 131072 61.163 2142.988 2 262144 128.603 2038.398 2 262144 116.832 2243.768 2 524288 220.918 2373.225 2 524288 247.958 2114.421 2 1048576 393.384 2665.528 2 1048576 396.609 2643.854 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2093.100 493.448 2665.528 2140.641 798.915 2643.854 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 3 4 0.007 578.525 3 4 0.005 798.915 3 8 0.009 906.877 3 8 0.006 1342.177 3 16 0.010 1597.830 3 16 0.008 2033.602 3 32 0.016 2003.250 3 32 0.014 2314.099 3 64 0.028 2294.320 3 64 0.027 2375.535 3 128 0.051 2508.743 3 128 0.051 2508.743 3 256 0.099 2587.330 3 256 0.100 2556.528 3 512 0.234 2189.076 3 512 0.288 1777.718 3 1024 0.588 1741.674 3 1024 0.607 1686.947 3 2048 1.009 2029.758 3 2048 1.254 1633.067 3 4096 1.597 2564.925 3 4096 1.620 2528.310 3 8192 3.165 2588.304 3 8192 3.226 2539.522 3 16384 6.300 2600.646 3 16384 6.640 2467.486 3 32768 12.942 2531.943 3 32768 12.943 2531.710 3 65536 24.732 2649.860 3 65536 26.098 2511.149 3 131072 52.860 2479.617 3 131072 66.273 1977.759 3 262144 102.027 2569.361 3 262144 105.086 2494.570 3 524288 212.377 2468.666 3 524288 209.644 2500.848 3 1048576 413.834 2533.809 3 1048576 424.745 2468.718 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2180.237 578.525 2649.860 2160.390 798.915 2556.528 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 4 4 0.007 578.525 4 4 0.004 1048.576 4 8 0.009 883.011 4 8 0.006 1290.555 4 16 0.011 1458.888 4 16 0.009 1766.023 4 32 0.017 1890.391 4 32 0.015 2164.802 4 64 0.029 2218.475 4 64 0.028 2274.877 4 128 0.054 2365.070 4 128 0.055 2324.117 4 256 0.104 2462.711 4 256 0.107 2391.407 4 512 0.212 2415.617 4 512 0.218 2346.977 4 1024 0.391 2618.882 4 1024 0.393 2604.589 4 2048 0.876 2338.033 4 2048 0.904 2265.278 4 4096 1.482 2763.814 4 4096 1.586 2582.662 4 8192 2.952 2775.199 4 8192 3.302 2480.848 4 16384 5.984 2738.046 4 16384 6.227 2631.116 4 32768 12.060 2717.098 4 32768 12.494 2622.681 4 65536 27.963 2343.675 4 65536 25.112 2609.733 4 131072 51.649 2537.752 4 131072 50.295 2606.058 4 262144 96.806 2707.930 4 262144 101.019 2594.999 4 524288 196.407 2669.395 4 524288 216.013 2427.111 4 1048576 503.164 2083.964 4 1048576 495.174 2117.590 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2240.341 578.525 2775.199 2271.053 1048.576 2631.116 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 5 4 0.008 493.448 5 4 0.005 798.915 5 8 0.009 883.011 5 8 0.006 1342.177 5 16 0.011 1458.888 5 16 0.009 1766.023 5 32 0.019 1677.722 5 32 0.018 1789.570 5 64 0.034 1877.171 5 64 0.032 2003.250 5 128 0.059 2164.802 5 128 0.060 2130.440 5 256 0.116 2209.345 5 256 0.117 2191.310 5 512 0.275 1860.904 5 512 0.256 1999.519 5 1024 0.483 2119.925 5 1024 0.484 2115.747 5 2048 0.932 2197.476 5 2048 0.945 2166.987 5 4096 1.873 2186.847 5 4096 1.883 2175.218 5 8192 3.968 2064.516 5 8192 3.700 2214.043 5 16384 7.331 2234.852 5 16384 7.725 2120.906 5 32768 17.637 1857.911 5 32768 18.749 1747.720 5 65536 31.887 2055.254 5 65536 34.602 1893.999 5 131072 75.936 1726.083 5 131072 70.339 1863.434 5 262144 133.175 1968.419 5 262144 133.216 1967.810 5 524288 257.705 2034.450 5 524288 283.694 1848.076 5 1048576 512.236 2047.057 5 1048576 464.177 2259.001 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1848.320 493.448 2234.852 1915.481 798.915 2259.001 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 6 4 0.008 508.400 6 4 0.005 798.915 6 8 0.009 906.877 6 8 0.006 1342.177 6 16 0.012 1342.177 6 16 0.009 1766.023 6 32 0.020 1597.830 6 32 0.018 1766.023 6 64 0.033 1945.184 6 64 0.031 2064.888 6 128 0.062 2064.888 6 128 0.060 2138.928 6 256 0.120 2134.676 6 256 0.117 2186.847 6 512 0.243 2107.442 6 512 0.246 2080.895 6 1024 0.691 1482.045 6 1024 0.577 1774.780 6 2048 0.957 2139.994 6 2048 0.929 2204.243 6 4096 2.389 1714.558 6 4096 1.975 2073.862 6 8192 5.123 1599.094 6 8192 3.692 2218.761 6 16384 7.762 2110.808 6 16384 7.084 2312.853 6 32768 13.798 2374.837 6 32768 13.755 2382.288 6 65536 29.869 2194.108 6 65536 29.415 2227.987 6 131072 55.263 2371.784 6 131072 55.350 2368.055 6 262144 113.639 2306.811 6 262144 112.030 2339.944 6 524288 227.397 2305.607 6 524288 221.963 2362.052 6 1048576 469.673 2232.566 6 1048576 444.212 2360.531 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1865.247 508.400 2374.837 2040.529 798.915 2382.288 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 7 4 0.007 578.525 7 4 0.004 1048.576 7 8 0.008 1016.801 7 8 0.005 1597.830 7 16 0.011 1458.888 7 16 0.008 2033.602 7 32 0.018 1789.570 7 32 0.016 1973.790 7 64 0.034 1890.391 7 64 0.030 2130.440 7 128 0.074 1726.273 7 128 0.067 1910.573 7 256 0.175 1462.864 7 256 0.140 1829.202 7 512 0.315 1625.650 7 512 0.277 1848.093 7 1024 0.664 1542.179 7 1024 0.555 1844.917 7 2048 1.041 1967.010 7 2048 1.066 1921.256 7 4096 2.120 1932.059 7 4096 2.182 1877.171 7 8192 4.304 1903.376 7 8192 4.472 1831.835 7 16384 9.139 1792.791 7 16384 8.273 1980.445 7 32768 17.507 1871.700 7 32768 16.539 1981.245 7 65536 35.072 1868.621 7 65536 33.146 1977.198 7 131072 75.412 1738.078 7 131072 69.835 1876.883 7 262144 153.410 1708.781 7 262144 132.722 1975.134 7 524288 276.940 1893.146 7 524288 264.071 1985.406 7 1048576 576.289 1819.532 7 1048576 532.743 1968.259 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1662.433 578.525 1967.010 1873.255 1048.576 2130.440 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 8 4 0.007 578.525 8 4 0.004 986.895 8 8 0.008 986.895 8 8 0.005 1597.830 8 16 0.011 1458.888 8 16 0.008 2033.602 8 32 0.017 1864.135 8 32 0.015 2130.440 8 64 0.030 2130.440 8 64 0.028 2294.320 8 128 0.057 2246.322 8 128 0.055 2324.117 8 256 0.109 2349.544 8 256 0.108 2370.291 8 512 0.222 2306.642 8 512 0.220 2329.158 8 1024 0.433 2365.070 8 1024 0.432 2370.291 8 2048 0.882 2322.232 8 2048 0.916 2235.798 8 4096 1.704 2403.787 8 4096 1.756 2332.637 8 8192 3.422 2393.906 8 8192 3.423 2393.239 8 16384 6.907 2372.091 8 16384 7.143 2293.708 8 32768 14.440 2269.243 8 32768 13.773 2379.154 8 65536 28.001 2340.502 8 65536 28.121 2330.501 8 131072 55.861 2346.396 8 131072 71.879 1823.505 8 262144 111.265 2356.029 8 262144 110.913 2363.509 8 524288 223.178 2349.193 8 524288 226.803 2311.644 8 1048576 470.735 2227.529 8 1048576 444.594 2358.503 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2087.756 578.525 2403.787 2171.534 986.895 2393.239 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 9 4 0.007 578.525 9 4 0.004 1048.576 9 8 0.008 1016.801 9 8 0.005 1597.830 9 16 0.012 1342.177 9 16 0.009 1766.023 9 32 0.019 1677.722 9 32 0.017 1890.391 9 64 0.036 1777.718 9 64 0.031 2064.888 9 128 0.073 1754.480 9 128 0.066 1938.162 9 256 0.160 1600.211 9 256 0.151 1693.599 9 512 0.321 1595.456 9 512 0.288 1777.718 9 1024 0.562 1822.218 9 1024 0.548 1869.002 9 2048 1.320 1551.650 9 2048 1.093 1873.895 9 4096 2.298 1782.514 9 4096 2.226 1840.175 9 8192 4.517 1813.562 9 8192 4.308 1901.585 9 16384 9.069 1806.601 9 16384 9.450 1733.764 9 32768 18.423 1778.638 9 32768 17.800 1840.889 9 65536 36.146 1813.083 9 65536 34.854 1880.304 9 131072 73.352 1786.888 9 131072 69.781 1878.332 9 262144 151.455 1730.838 9 262144 148.004 1771.195 9 524288 290.087 1807.348 9 524288 285.222 1838.175 9 1048576 614.190 1707.251 9 1048576 567.190 1848.720 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1618.088 578.525 1822.218 1792.275 1048.576 2064.888 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 10 4 0.007 559.241 10 4 0.004 986.895 10 8 0.009 883.011 10 8 0.006 1342.177 10 16 0.011 1458.888 10 16 0.010 1597.830 10 32 0.020 1597.830 10 32 0.017 1864.135 10 64 0.036 1777.718 10 64 0.031 2064.888 10 128 0.074 1726.273 10 128 0.073 1754.480 10 256 0.150 1707.062 10 256 0.138 1857.685 10 512 0.312 1641.807 10 512 0.288 1779.191 10 1024 0.620 1651.910 10 1024 0.573 1786.592 10 2048 1.253 1634.621 10 2048 1.146 1787.336 10 4096 2.486 1647.633 10 4096 2.302 1779.375 10 8192 5.022 1631.207 10 8192 4.615 1775.055 10 16384 9.873 1659.450 10 16384 9.471 1729.923 10 32768 20.692 1583.617 10 32768 18.548 1766.658 10 65536 39.639 1653.311 10 65536 37.346 1754.827 10 131072 80.201 1634.296 10 131072 87.022 1506.193 10 262144 164.728 1591.376 10 262144 150.905 1737.144 10 524288 421.664 1243.379 10 524288 337.835 1551.905 10 1048576 657.565 1594.634 10 1048576 622.003 1685.805 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1519.856 559.241 1777.718 1689.900 986.895 2064.888 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 11 4 0.007 578.525 11 4 0.005 798.915 11 8 0.008 986.895 11 8 0.005 1597.830 11 16 0.013 1220.161 11 16 0.010 1597.830 11 32 0.021 1525.201 11 32 0.016 2003.250 11 64 0.039 1646.843 11 64 0.035 1826.092 11 128 0.071 1801.580 11 128 0.062 2064.888 11 256 0.139 1838.599 11 256 0.123 2080.895 11 512 0.304 1684.301 11 512 0.326 1570.946 11 1024 0.699 1464.859 11 1024 0.582 1759.511 11 2048 1.419 1443.201 11 2048 1.047 1956.259 11 4096 2.186 1873.895 11 4096 2.072 1976.970 11 8192 4.534 1806.791 11 8192 4.206 1947.610 11 16384 8.767 1868.799 11 16384 8.353 1961.452 11 32768 17.528 1869.460 11 32768 17.740 1847.124 11 65536 41.270 1587.990 11 65536 36.425 1799.198 11 131072 72.636 1804.501 11 131072 66.854 1960.571 11 262144 143.576 1825.822 11 262144 130.423 2009.951 11 524288 298.920 1753.941 11 524288 260.499 2012.630 11 1048576 577.277 1816.417 11 1048576 544.896 1924.359 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1599.883 578.525 1873.895 1826.120 798.915 2080.895 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 12 4 0.007 578.525 12 4 0.005 798.915 12 8 0.014 568.719 12 8 0.009 883.011 12 16 0.015 1065.220 12 16 0.011 1427.848 12 32 0.022 1458.888 12 32 0.019 1677.722 12 64 0.040 1597.830 12 64 0.036 1777.718 12 128 0.077 1662.139 12 128 0.068 1877.171 12 256 0.150 1707.062 12 256 0.125 2045.223 12 512 0.279 1835.456 12 512 0.263 1946.948 12 1024 0.579 1768.204 12 1024 0.559 1831.543 12 2048 1.140 1796.306 12 2048 1.055 1941.228 12 4096 2.165 1891.848 12 4096 2.072 1976.743 12 8192 4.396 1863.427 12 8192 4.097 1999.519 12 16384 8.891 1842.790 12 16384 8.384 1954.201 12 32768 17.672 1854.226 12 32768 16.294 2011.047 12 65536 35.428 1849.834 12 65536 32.256 2031.753 12 131072 70.244 1865.957 12 131072 64.677 2026.563 12 262144 141.815 1848.493 12 262144 130.491 2008.905 12 524288 294.754 1778.731 12 524288 262.466 1997.547 12 1048576 570.950 1836.546 12 1048576 543.061 1930.862 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1614.221 568.719 1891.848 1797.077 798.915 2045.223 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 13 4 0.007 578.525 13 4 0.004 1048.576 13 8 0.008 1016.801 13 8 0.005 1597.830 13 16 0.013 1242.757 13 16 0.010 1597.830 13 32 0.022 1443.201 13 32 0.019 1677.722 13 64 0.041 1560.671 13 64 0.036 1777.718 13 128 0.077 1662.139 13 128 0.066 1938.162 13 256 0.150 1707.062 13 256 0.139 1841.753 13 512 0.339 1510.185 13 512 0.297 1723.502 13 1024 0.611 1675.758 13 1024 0.820 1248.900 13 2048 1.196 1712.166 13 2048 1.125 1820.287 13 4096 2.398 1708.080 13 4096 2.226 1839.977 13 8192 5.044 1624.113 13 8192 4.485 1826.480 13 16384 9.521 1720.826 13 16384 8.959 1828.764 13 32768 18.791 1743.817 13 32768 18.153 1805.106 13 65536 38.737 1691.817 13 65536 36.009 1819.986 13 131072 76.980 1702.673 13 131072 71.798 1825.564 13 262144 153.422 1708.648 13 262144 150.939 1736.755 13 524288 312.673 1676.794 13 524288 281.967 1859.395 13 1048576 648.033 1618.090 13 1048576 564.349 1858.027 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1542.322 578.525 1743.817 1719.597 1048.576 1938.162 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 14 4 0.007 559.241 14 4 0.005 798.915 14 8 0.009 883.011 14 8 0.006 1342.177 14 16 0.013 1220.161 14 16 0.010 1597.830 14 32 0.023 1398.101 14 32 0.020 1617.081 14 64 0.041 1560.671 14 64 0.035 1826.092 14 128 0.085 1508.064 14 128 0.077 1662.139 14 256 0.153 1675.104 14 256 0.138 1857.685 14 512 0.319 1604.995 14 512 0.301 1700.304 14 1024 0.607 1686.947 14 1024 0.575 1780.666 14 2048 1.311 1562.090 14 2048 1.134 1806.126 14 4096 2.529 1619.673 14 4096 2.146 1908.662 14 8192 4.821 1699.295 14 8192 4.582 1787.894 14 16384 9.671 1694.142 14 16384 9.371 1748.365 14 32768 19.422 1687.154 14 32768 17.321 1891.796 14 65536 39.241 1670.087 14 65536 35.733 1834.048 14 131072 80.033 1637.723 14 131072 72.281 1813.370 14 262144 213.486 1227.920 14 262144 178.813 1466.021 14 524288 395.269 1326.408 14 524288 363.815 1441.085 14 1048576 774.032 1354.693 14 1048576 589.265 1779.464 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1451.341 559.241 1699.295 1666.301 798.915 1908.662 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 15 4 0.007 578.525 15 4 0.005 798.915 15 8 0.008 986.895 15 8 0.005 1597.830 15 16 0.013 1220.161 15 16 0.010 1597.830 15 32 0.023 1383.688 15 32 0.020 1597.830 15 64 0.044 1458.888 15 64 0.039 1636.802 15 128 0.104 1231.355 15 128 0.085 1508.064 15 256 0.188 1360.890 15 256 0.167 1531.729 15 512 0.384 1333.841 15 512 0.354 1447.091 15 1024 0.741 1381.907 15 1024 0.691 1482.045 15 2048 1.519 1348.287 15 2048 1.382 1481.790 15 4096 2.982 1373.620 15 4096 2.902 1411.425 15 8192 5.802 1411.947 15 8192 5.529 1481.662 15 16384 11.608 1411.425 15 16384 10.916 1500.884 15 32768 23.937 1368.928 15 32768 22.305 1469.087 15 65536 50.607 1295.000 15 65536 50.461 1298.750 15 131072 94.741 1383.479 15 131072 87.791 1492.997 15 262144 203.737 1286.680 15 262144 179.058 1464.017 15 524288 379.216 1382.558 15 524288 366.731 1429.626 15 1048576 851.440 1231.532 15 1048576 871.108 1203.727 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1285.769 578.525 1458.888 1443.795 798.915 1636.802 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 16 4 0.008 493.448 16 4 0.004 986.895 16 8 0.009 883.011 16 8 0.006 1342.177 16 16 0.013 1220.161 16 16 0.010 1597.830 16 32 0.022 1458.888 16 32 0.019 1698.959 16 64 0.040 1597.830 16 64 0.036 1777.718 16 128 0.077 1662.139 16 128 0.070 1832.324 16 256 0.150 1707.062 16 256 0.138 1854.476 16 512 0.303 1689.602 16 512 0.281 1821.445 16 1024 0.597 1715.243 16 1024 0.582 1759.511 16 2048 1.205 1699.295 16 2048 1.843 1111.246 16 4096 3.876 1056.767 16 4096 3.534 1159.079 16 8192 5.154 1589.478 16 8192 4.685 1748.498 16 16384 9.898 1655.253 16 16384 9.053 1809.788 16 32768 20.359 1609.506 16 32768 18.979 1726.533 16 65536 54.663 1198.911 16 65536 49.734 1317.734 16 131072 90.917 1441.665 16 131072 76.157 1721.079 16 262144 168.953 1551.580 16 262144 132.725 1975.091 16 524288 288.258 1818.815 16 524288 273.178 1919.217 16 1048576 582.392 1800.464 16 1048576 532.902 1967.671 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1465.743 493.448 1818.815 1638.278 986.895 1975.091 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 17 4 0.007 559.241 17 4 0.004 986.895 17 8 0.009 883.011 17 8 0.007 1157.049 17 16 0.014 1157.049 17 16 0.012 1342.177 17 32 0.024 1328.888 17 32 0.022 1458.888 17 64 0.046 1390.857 17 64 0.041 1560.671 17 128 0.092 1390.857 17 128 0.080 1597.830 17 256 0.181 1414.680 17 256 0.160 1597.830 17 512 0.462 1108.093 17 512 0.350 1462.864 17 1024 0.740 1384.134 17 1024 0.663 1544.952 17 2048 1.479 1384.803 17 2048 1.296 1580.194 17 4096 2.878 1423.117 17 4096 2.632 1556.289 17 8192 6.111 1340.502 17 8192 5.298 1546.273 17 16384 11.542 1419.531 17 16384 10.251 1598.276 17 32768 23.443 1397.774 17 32768 25.424 1288.861 17 65536 46.030 1423.766 17 65536 46.119 1421.020 17 131072 93.314 1404.635 17 131072 84.101 1558.508 17 262144 186.997 1401.863 17 262144 170.513 1537.385 17 524288 405.450 1293.101 17 524288 333.079 1574.066 17 1048576 768.156 1365.056 17 1048576 685.334 1530.022 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1287.945 559.241 1423.766 1468.424 986.895 1598.276 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 18 4 0.007 578.525 18 4 0.004 986.895 18 8 0.009 883.011 18 8 0.006 1342.177 18 16 0.015 1065.220 18 16 0.011 1458.888 18 32 0.025 1290.555 18 32 0.020 1617.081 18 64 0.046 1390.857 18 64 0.040 1597.830 18 128 0.095 1348.922 18 128 0.085 1503.840 18 256 0.173 1478.983 18 256 0.164 1560.671 18 512 0.391 1309.441 18 512 0.303 1689.602 18 1024 0.738 1387.263 18 1024 0.623 1643.692 18 2048 1.380 1484.094 18 2048 1.213 1688.273 18 4096 2.732 1499.247 18 4096 2.457 1666.977 18 8192 5.477 1495.723 18 8192 4.857 1686.616 18 16384 12.467 1314.174 18 16384 10.017 1635.594 18 32768 21.868 1498.446 18 32768 19.500 1680.429 18 65536 44.874 1460.446 18 65536 39.950 1640.455 18 131072 99.692 1314.768 18 131072 78.486 1670.006 18 262144 181.154 1447.078 18 262144 158.573 1653.145 18 524288 356.317 1471.410 18 524288 328.096 1597.972 18 1048576 719.006 1458.369 18 1048576 646.904 1620.914 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1325.081 578.525 1499.247 1575.845 986.895 1689.602 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 19 4 0.010 399.458 19 4 0.008 493.448 19 8 0.014 578.525 19 8 0.011 729.444 19 16 0.024 664.444 19 16 0.017 932.068 19 32 0.044 725.501 19 32 0.042 762.601 19 64 0.065 983.280 19 64 0.044 1451.002 19 128 0.105 1220.161 19 128 0.093 1376.592 19 256 0.213 1202.398 19 256 0.191 1340.502 19 512 0.413 1239.887 19 512 0.375 1365.215 19 1024 0.834 1227.835 19 1024 0.803 1275.228 19 2048 1.875 1092.172 19 2048 1.506 1360.028 19 4096 3.300 1241.230 19 4096 3.154 1298.652 19 8192 7.294 1123.087 19 8192 5.581 1467.863 19 16384 12.931 1267.045 19 16384 14.040 1166.952 19 32768 24.330 1346.820 19 32768 23.309 1405.809 19 65536 48.245 1358.401 19 65536 44.403 1475.934 19 131072 98.927 1324.936 19 131072 90.075 1455.143 19 262144 196.514 1333.972 19 262144 198.092 1323.345 19 524288 418.452 1252.923 19 524288 458.062 1144.579 19 1048576 950.443 1103.250 19 1048576 786.533 1333.162 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1088.701 399.458 1358.401 1218.819 493.448 1475.934 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 20 4 0.007 578.525 20 4 0.004 1048.576 20 8 0.010 798.915 20 8 0.007 1118.481 20 16 0.015 1065.220 20 16 0.011 1458.888 20 32 0.026 1231.355 20 32 0.021 1525.201 20 64 0.047 1362.617 20 64 0.040 1597.830 20 128 0.091 1405.421 20 128 0.079 1621.967 20 256 0.178 1439.332 20 256 0.158 1619.520 20 512 0.353 1450.023 20 512 0.314 1630.587 20 1024 0.911 1124.043 20 1024 0.837 1223.289 20 2048 1.405 1457.651 20 2048 1.281 1598.722 20 4096 2.828 1448.311 20 4096 2.556 1602.450 20 8192 5.683 1441.506 20 8192 5.034 1627.344 20 16384 11.886 1378.442 20 16384 10.280 1593.791 20 32768 22.516 1455.320 20 32768 21.438 1528.492 20 65536 45.691 1434.330 20 65536 45.182 1450.489 20 131072 91.855 1426.944 20 131072 82.180 1594.937 20 262144 190.800 1373.921 20 262144 169.790 1543.930 20 524288 378.142 1386.485 20 524288 332.004 1579.161 20 1048576 767.411 1366.381 20 1048576 708.983 1478.986 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1296.039 578.525 1457.651 1496.981 1048.576 1630.587 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 21 4 0.008 508.400 21 4 0.005 798.915 21 8 0.010 798.915 21 8 0.008 1016.801 21 16 0.016 1001.625 21 16 0.013 1220.161 21 32 0.029 1100.145 21 32 0.024 1328.888 21 64 0.054 1187.768 21 64 0.046 1398.101 21 128 0.112 1144.714 21 128 0.090 1424.061 21 256 0.198 1292.108 21 256 0.184 1390.857 21 512 0.392 1306.255 21 512 0.438 1169.017 21 1024 0.832 1231.002 21 1024 0.716 1430.226 21 2048 1.645 1244.918 21 2048 1.426 1436.204 21 4096 3.110 1317.071 21 4096 2.886 1419.237 21 8192 6.578 1245.369 21 8192 5.760 1422.233 21 16384 12.635 1296.716 21 16384 11.634 1408.273 21 32768 25.697 1275.169 21 32768 23.475 1395.872 21 65536 51.216 1279.603 21 65536 46.946 1395.985 21 131072 102.302 1281.225 21 131072 95.959 1365.917 21 262144 204.250 1283.446 21 262144 186.488 1405.689 21 524288 437.458 1198.488 21 524288 373.817 1402.526 21 1048576 847.482 1237.284 21 1048576 943.656 1111.185 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1170.012 508.400 1317.071 1312.639 798.915 1436.204 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 22 4 0.008 508.400 22 4 0.005 798.915 22 8 0.010 798.915 22 8 0.007 1157.049 22 16 0.017 945.195 22 16 0.013 1242.757 22 32 0.029 1100.145 22 32 0.024 1328.888 22 64 0.055 1162.058 22 64 0.047 1362.617 22 128 0.105 1217.394 22 128 0.092 1390.857 22 256 0.225 1137.438 22 256 0.205 1248.537 22 512 0.426 1201.726 22 512 0.387 1323.157 22 1024 0.897 1141.671 22 1024 1.065 961.488 22 2048 2.144 955.286 22 2048 1.522 1345.752 22 4096 3.275 1250.627 22 4096 2.963 1382.352 22 8192 6.585 1244.062 22 8192 8.128 1007.853 22 16384 16.297 1005.347 22 16384 14.246 1150.078 22 32768 29.170 1123.345 22 32768 27.221 1203.768 22 65536 54.637 1199.481 22 65536 54.934 1193.000 22 131072 116.553 1124.569 22 131072 112.785 1162.139 22 262144 248.511 1054.859 22 262144 217.651 1204.423 22 524288 456.904 1147.480 22 524288 374.504 1399.954 22 1048576 801.148 1308.842 22 1048576 719.119 1458.140 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1085.623 508.400 1308.842 1227.459 798.915 1458.140 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 23 4 0.007 559.241 23 4 0.005 798.915 23 8 0.010 798.915 23 8 0.007 1157.049 23 16 0.016 1001.625 23 16 0.013 1242.757 23 32 0.029 1109.237 23 32 0.025 1278.264 23 64 0.054 1182.535 23 64 0.047 1362.617 23 128 0.104 1231.355 23 128 0.092 1390.857 23 256 0.203 1260.260 23 256 0.187 1369.569 23 512 0.440 1163.948 23 512 0.399 1282.846 23 1024 0.899 1138.947 23 1024 0.848 1207.469 23 2048 1.784 1147.927 23 2048 1.759 1164.263 23 4096 3.090 1325.607 23 4096 3.179 1288.426 23 8192 6.384 1283.181 23 8192 5.588 1466.047 23 16384 12.518 1308.818 23 16384 11.275 1453.120 23 32768 25.079 1306.591 23 32768 23.598 1388.595 23 65536 49.936 1312.398 23 65536 45.071 1454.057 23 131072 106.254 1233.571 23 131072 93.051 1408.605 23 262144 205.405 1276.230 23 262144 191.665 1367.718 23 524288 401.829 1304.754 23 524288 374.501 1399.964 23 1048576 836.932 1252.881 23 1048576 919.338 1140.577 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1168.317 559.241 1325.607 1295.880 798.915 1466.047 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 24 4 0.008 493.448 24 4 0.004 986.895 24 8 0.010 798.915 24 8 0.008 986.895 24 16 0.017 945.195 24 16 0.014 1137.438 24 32 0.029 1100.145 24 32 0.024 1328.888 24 64 0.054 1187.768 24 64 0.047 1362.617 24 128 0.104 1231.355 24 128 0.093 1376.592 24 256 0.203 1261.741 24 256 0.185 1383.688 24 512 0.436 1174.130 24 512 0.368 1390.857 24 1024 0.846 1210.191 24 1024 0.741 1381.907 24 2048 1.873 1093.423 24 2048 1.473 1390.407 24 4096 3.195 1281.984 24 4096 3.830 1069.464 24 8192 10.552 776.351 24 8192 8.524 961.031 24 16384 14.934 1097.107 24 16384 12.445 1316.516 24 32768 30.893 1060.690 24 32768 30.307 1081.209 24 65536 61.113 1072.372 24 65536 51.783 1265.587 24 131072 112.195 1168.252 24 131072 100.261 1307.308 24 262144 248.210 1056.138 24 262144 228.441 1147.535 24 524288 498.888 1050.913 24 524288 455.198 1151.780 24 1048576 986.976 1062.413 24 1048576 759.522 1380.573 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1059.081 493.448 1281.984 1231.957 961.031 1390.857 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 25 4 0.007 578.525 25 4 0.004 986.895 25 8 0.010 798.915 25 8 0.007 1157.049 25 16 0.017 945.195 25 16 0.014 1137.438 25 32 0.029 1109.237 25 32 0.025 1278.264 25 64 0.066 969.081 25 64 0.058 1100.145 25 128 0.141 908.411 25 128 0.142 902.304 25 256 0.248 1032.444 25 256 0.260 985.084 25 512 0.509 1006.318 25 512 0.555 922.459 25 1024 0.964 1062.059 25 1024 1.019 1004.906 25 2048 1.912 1071.064 25 2048 1.940 1055.664 25 4096 3.798 1078.460 25 4096 3.580 1144.180 25 8192 7.637 1072.669 25 8192 7.560 1083.596 25 16384 15.724 1041.962 25 16384 14.666 1117.154 25 32768 33.623 974.572 25 32768 37.364 876.994 25 65536 66.896 979.670 25 65536 57.996 1130.008 25 131072 130.537 1004.098 25 131072 120.925 1083.912 25 262144 289.257 906.267 25 262144 240.842 1088.448 25 524288 554.302 945.853 25 524288 474.461 1105.018 25 1048576 1058.315 990.798 25 1048576 990.945 1058.158 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 972.400 578.525 1109.237 1064.088 876.994 1278.264 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 26 4 0.007 578.525 26 4 0.005 798.915 26 8 0.010 798.915 26 8 0.006 1342.177 26 16 0.017 945.195 26 16 0.013 1220.161 26 32 0.029 1109.237 26 32 0.024 1342.177 26 64 0.054 1187.768 26 64 0.048 1328.888 26 128 0.105 1220.161 26 128 0.094 1362.617 26 256 0.251 1020.667 26 256 0.225 1138.645 26 512 0.442 1158.298 26 512 0.389 1316.667 26 1024 0.845 1211.898 26 1024 0.757 1352.746 26 2048 1.692 1210.361 26 2048 1.587 1290.361 26 4096 3.292 1244.197 26 4096 2.986 1371.646 26 8192 6.882 1190.360 26 8192 5.931 1381.185 26 16384 13.969 1172.887 26 16384 12.141 1349.478 26 32768 31.473 1041.149 26 32768 24.292 1348.922 26 65536 58.077 1128.431 26 65536 48.168 1360.566 26 131072 125.362 1045.547 26 131072 100.722 1301.323 26 262144 237.203 1105.146 26 262144 195.860 1338.426 26 524288 501.920 1044.565 26 524288 398.817 1314.609 26 1048576 973.157 1077.499 26 1048576 818.740 1280.719 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1078.463 578.525 1244.197 1291.591 798.915 1381.185 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 27 4 0.008 508.400 27 4 0.004 986.895 27 8 0.010 798.915 27 8 0.007 1118.481 27 16 0.017 945.195 27 16 0.014 1137.438 27 32 0.029 1100.145 27 32 0.025 1278.264 27 64 0.055 1162.058 27 64 0.049 1309.441 27 128 0.114 1120.816 27 128 0.115 1113.840 27 256 0.241 1062.059 27 256 0.226 1132.639 27 512 0.477 1073.205 27 512 0.471 1086.783 27 1024 0.935 1095.096 27 1024 0.922 1110.672 27 2048 2.199 931.360 27 2048 1.842 1111.822 27 4096 3.955 1035.618 27 4096 3.351 1222.331 27 8192 7.146 1146.356 27 8192 6.733 1216.705 27 16384 16.680 982.254 27 16384 13.005 1259.821 27 32768 29.072 1127.131 27 32768 26.144 1253.365 27 65536 59.226 1106.540 27 65536 53.246 1230.820 27 131072 119.309 1098.591 27 131072 108.517 1207.848 27 262144 241.090 1087.329 27 262144 219.932 1191.932 27 524288 475.639 1102.281 27 524288 439.335 1193.367 27 1048576 1009.268 1038.947 27 1048576 912.671 1148.909 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1027.489 508.400 1162.058 1174.283 986.895 1309.441 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 28 4 0.007 559.241 28 4 0.005 798.915 28 8 0.009 883.011 28 8 0.006 1342.177 28 16 0.017 932.068 28 16 0.013 1242.757 28 32 0.030 1073.742 28 32 0.025 1290.555 28 64 0.055 1167.111 28 64 0.049 1303.085 28 128 0.107 1195.704 28 128 0.097 1319.093 28 256 0.211 1213.268 28 256 0.192 1332.186 28 512 0.432 1185.146 28 512 0.638 802.498 28 1024 0.872 1174.451 28 1024 0.789 1297.573 28 2048 1.707 1199.712 28 2048 1.566 1307.846 28 4096 3.763 1088.505 28 4096 3.500 1170.291 28 8192 6.720 1219.036 28 8192 6.320 1296.203 28 16384 13.657 1199.670 28 16384 12.330 1328.786 28 32768 26.716 1226.531 28 32768 25.291 1295.641 28 65536 58.956 1111.610 28 65536 50.200 1305.498 28 131072 109.799 1193.743 28 131072 104.667 1252.274 28 262144 224.665 1166.821 28 262144 201.710 1299.608 28 524288 445.532 1176.768 28 524288 415.340 1262.310 28 1048576 908.171 1154.602 28 1048576 1027.859 1020.156 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1111.618 559.241 1226.531 1224.603 798.915 1342.177 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 29 4 0.008 508.400 29 4 0.005 798.915 29 8 0.010 798.915 29 8 0.008 1016.801 29 16 0.019 849.479 29 16 0.015 1065.220 29 32 0.035 913.046 29 32 0.030 1065.220 29 64 0.073 877.240 29 64 0.065 983.280 29 128 0.150 853.531 29 128 0.135 948.535 29 256 0.304 841.490 29 256 0.283 904.585 29 512 0.633 808.845 29 512 0.579 884.102 29 1024 1.330 769.845 29 1024 1.451 705.713 29 2048 2.489 822.869 29 2048 2.065 991.795 29 4096 4.552 899.846 29 4096 7.219 567.404 29 8192 11.040 742.031 29 8192 10.834 756.140 29 16384 27.631 592.956 29 16384 17.036 961.730 29 32768 39.791 823.506 29 32768 38.480 851.564 29 65536 103.533 632.996 29 65536 86.354 758.922 29 131072 154.661 847.480 29 131072 155.616 842.279 29 262144 314.778 832.790 29 262144 261.744 1001.528 29 524288 537.914 974.669 29 524288 520.221 1007.818 29 1048576 1109.608 944.997 29 1048576 1023.489 1024.511 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 807.102 508.400 974.669 901.898 567.404 1065.220 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 30 4 0.007 578.525 30 4 0.005 798.915 30 8 0.009 883.011 30 8 0.007 1118.481 30 16 0.016 1001.625 30 16 0.013 1220.161 30 32 0.031 1032.444 30 32 0.027 1187.768 30 64 0.067 955.286 30 64 0.058 1100.145 30 128 0.122 1048.576 30 128 0.124 1032.444 30 256 0.257 996.050 30 256 0.221 1158.298 30 512 0.459 1114.997 30 512 0.422 1213.268 30 1024 0.925 1106.950 30 1024 0.825 1241.320 30 2048 1.773 1155.182 30 2048 1.908 1073.339 30 4096 3.623 1130.552 30 4096 3.241 1263.783 30 8192 7.568 1082.435 30 8192 6.698 1223.071 30 16384 14.908 1099.002 30 16384 13.656 1199.774 30 32768 30.341 1079.994 30 32768 26.056 1257.597 30 65536 57.430 1141.145 30 65536 52.784 1241.589 30 131072 115.777 1132.107 30 131072 109.709 1194.724 30 262144 230.787 1135.871 30 262144 222.425 1178.573 30 524288 475.286 1103.100 30 524288 429.786 1219.882 30 1048576 984.790 1064.771 30 1048576 861.557 1217.071 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1044.296 578.525 1155.182 1165.274 798.915 1263.783 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 31 4 0.007 559.241 31 4 0.005 798.915 31 8 0.009 883.011 31 8 0.007 1157.049 31 16 0.016 1001.625 31 16 0.013 1242.757 31 32 0.031 1032.444 31 32 0.027 1187.768 31 64 0.060 1065.220 31 64 0.053 1209.169 31 128 0.124 1032.444 31 128 0.111 1154.561 31 256 0.238 1075.894 31 256 0.224 1143.495 31 512 0.472 1085.136 31 512 0.435 1176.703 31 1024 0.922 1110.672 31 1024 0.850 1204.422 31 2048 1.822 1124.043 31 2048 1.718 1192.053 31 4096 3.684 1111.822 31 4096 3.341 1225.995 31 8192 7.523 1088.919 31 8192 6.686 1225.252 31 16384 14.994 1092.711 31 16384 13.708 1195.204 31 32768 29.423 1113.687 31 32768 29.072 1127.140 31 65536 63.738 1028.207 31 65536 57.102 1147.701 31 131072 118.258 1108.356 31 131072 117.539 1115.137 31 262144 241.632 1084.889 31 262144 241.678 1084.683 31 524288 609.935 859.580 31 524288 549.637 953.880 31 1048576 1082.722 968.463 31 1048576 906.869 1156.259 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1022.440 559.241 1124.043 1142.008 798.915 1242.757 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 32 4 0.008 508.400 32 4 0.005 798.915 32 8 0.009 883.011 32 8 0.007 1157.049 32 16 0.015 1065.220 32 16 0.012 1315.860 32 32 0.027 1187.768 32 32 0.024 1328.888 32 64 0.050 1278.264 32 64 0.048 1328.888 32 128 0.097 1319.093 32 128 0.095 1348.922 32 256 0.192 1332.186 32 256 0.189 1355.735 32 512 0.320 1600.211 32 512 0.284 1803.093 32 1024 0.601 1703.676 32 1024 0.544 1882.932 32 2048 1.189 1722.465 32 2048 1.076 1903.376 32 4096 2.662 1538.725 32 4096 2.347 1745.212 32 8192 5.312 1542.179 32 8192 4.274 1916.754 32 16384 9.495 1725.536 32 16384 8.565 1912.913 32 32768 19.038 1721.193 32 32768 16.194 2023.482 32 65536 38.262 1712.827 32 65536 32.429 2020.908 32 131072 71.207 1840.723 32 131072 64.378 2035.974 32 262144 142.191 1843.606 32 262144 130.606 2007.133 32 524288 292.280 1793.787 32 524288 260.405 2013.356 32 1048576 581.880 1802.049 32 1048576 537.808 1949.722 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1480.048 508.400 1843.606 1676.269 798.915 2035.974 stats by bits per item pack: unpack: bits avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1 2295.490 578.525 2826.334 2371.291 1048.576 2776.096 2 2093.100 493.448 2665.528 2140.641 798.915 2643.854 3 2180.237 578.525 2649.860 2160.390 798.915 2556.528 4 2240.341 578.525 2775.199 2271.053 1048.576 2631.116 5 1848.320 493.448 2234.852 1915.481 798.915 2259.001 6 1865.247 508.400 2374.837 2040.529 798.915 2382.288 7 1662.433 578.525 1967.010 1873.255 1048.576 2130.440 8 2087.756 578.525 2403.787 2171.534 986.895 2393.239 9 1618.088 578.525 1822.218 1792.275 1048.576 2064.888 10 1519.856 559.241 1777.718 1689.900 986.895 2064.888 11 1599.883 578.525 1873.895 1826.120 798.915 2080.895 12 1614.221 568.719 1891.848 1797.077 798.915 2045.223 13 1542.322 578.525 1743.817 1719.597 1048.576 1938.162 14 1451.341 559.241 1699.295 1666.301 798.915 1908.662 15 1285.769 578.525 1458.888 1443.795 798.915 1636.802 16 1465.743 493.448 1818.815 1638.278 986.895 1975.091 17 1287.945 559.241 1423.766 1468.424 986.895 1598.276 18 1325.081 578.525 1499.247 1575.845 986.895 1689.602 19 1088.701 399.458 1358.401 1218.819 493.448 1475.934 20 1296.039 578.525 1457.651 1496.981 1048.576 1630.587 21 1170.012 508.400 1317.071 1312.639 798.915 1436.204 22 1085.623 508.400 1308.842 1227.459 798.915 1458.140 23 1168.317 559.241 1325.607 1295.880 798.915 1466.047 24 1059.081 493.448 1281.984 1231.957 961.031 1390.857 25 972.400 578.525 1109.237 1064.088 876.994 1278.264 26 1078.463 578.525 1244.197 1291.591 798.915 1381.185 27 1027.489 508.400 1162.058 1174.283 986.895 1309.441 28 1111.618 559.241 1226.531 1224.603 798.915 1342.177 29 807.102 508.400 974.669 901.898 567.404 1065.220 30 1044.296 578.525 1155.182 1165.274 798.915 1263.783 31 1022.440 559.241 1124.043 1142.008 798.915 1242.757 32 1480.048 508.400 1843.606 1676.269 798.915 2035.974 stats by size pack: unpack: size(B) avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4 545.530 399.458 578.525 883.176 493.448 1048.576 8 864.542 568.719 1016.801 1267.881 729.444 1597.830 16 1162.816 664.444 1597.830 1487.384 932.068 2033.602 32 1384.905 725.501 2003.250 1605.293 762.601 2485.513 64 1518.172 877.240 2462.711 1690.700 983.280 2556.528 128 1565.489 853.531 2671.000 1682.917 902.304 2657.777 256 1590.145 841.490 2781.715 1684.481 904.585 2725.233 512 1530.282 808.845 2415.617 1605.807 802.498 2547.430 1024 1535.013 769.845 2618.882 1604.734 705.713 2646.314 2048 1557.667 822.869 2730.431 1651.279 991.795 2730.431 4096 1618.809 899.846 2814.988 1666.702 567.404 2728.696 8192 1576.390 742.031 2775.199 1708.661 756.140 2776.096 16384 1612.593 592.956 2826.334 1677.044 961.730 2631.116 32768 1611.003 823.506 2717.098 1680.393 851.564 2622.681 65536 1555.419 632.996 2649.860 1682.208 758.922 2631.141 131072 1595.612 847.480 2718.885 1659.475 842.279 2663.804 262144 1579.349 832.790 2721.846 1694.954 1001.528 2716.212 524288 1577.424 859.580 2669.395 1669.210 953.880 2500.848 1048576 1565.753 944.997 2665.528 1670.363 1020.156 2643.854 real 1m30.606s user 1m30.227s sys 0m0.129s ================================================ FILE: benchmark/PackedArraySelfBench-unrolled-galaxy-note-cortex-a9-1.4GHz.txt ================================================ -- PackedArray self bench ------------------------------------------------------ memcpy: bits size (B) time (µs) speed (B/µs) 32 4 0.345 11.594 32 8 0.220 36.354 32 16 0.219 73.103 32 32 0.372 86.037 32 64 0.424 150.976 32 128 0.510 250.992 32 256 0.689 371.537 32 512 1.049 488.064 32 1024 1.903 538.082 32 2048 3.260 628.241 32 4096 6.324 647.686 32 8192 12.139 674.858 32 16384 23.938 684.436 32 32768 46.390 706.358 32 65536 27.217 2407.915 32 131072 55.814 2348.370 32 262144 117.571 2229.663 32 524288 338.011 1551.097 32 1048576 1517.159 691.144 avg (B/µs) min (B/µs) max (B/µs) 767.185 11.594 2407.915 loopcpy: bits size (B) time (µs) speed (B/µs) 32 4 0.037 107.546 32 8 0.037 216.480 32 16 0.036 444.430 32 32 0.062 516.222 32 64 0.072 888.859 32 128 0.086 1487.177 32 256 0.439 582.922 32 512 0.176 2909.869 32 1024 0.327 3130.443 32 2048 3.101 660.459 32 4096 1.036 3953.030 32 8192 2.306 3552.496 32 16384 4.370 3749.017 32 32768 12.783 2563.394 32 65536 45.559 1438.489 32 131072 78.460 1670.554 32 262144 143.965 1820.887 32 524288 425.393 1232.480 32 1048576 1384.237 757.512 avg (B/µs) min (B/µs) max (B/µs) 1667.488 107.546 3953.030 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 1 4 0.064 62.369 1 4 0.063 63.550 1 8 0.065 122.910 1 8 0.029 277.309 1 16 0.071 225.956 1 16 0.031 516.222 1 32 0.087 367.720 1 32 0.038 844.137 1 64 0.118 542.294 1 64 0.057 1123.161 1 128 0.105 1220.161 1 128 0.060 2130.440 1 256 0.174 1470.879 1 256 0.096 2671.000 1 512 0.330 1551.650 1 512 0.202 2535.400 1 1024 0.603 1698.287 1 1024 0.295 3469.279 1 2048 1.243 1647.475 1 2048 0.600 3414.123 1 4096 2.304 1777.902 1 4096 1.150 3562.071 1 8192 4.559 1796.869 1 8192 2.198 3727.057 1 16384 9.124 1795.743 1 16384 4.333 3781.405 1 32768 22.830 1435.304 1 32768 8.620 3801.382 1 65536 65.304 1003.556 1 65536 17.089 3835.006 1 131072 147.249 890.139 1 131072 34.496 3799.621 1 262144 292.106 897.428 1 262144 69.092 3794.128 1 524288 594.218 882.316 1 524288 138.128 3795.667 1 1048576 1230.256 852.324 1 1048576 465.576 2252.211 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1065.331 62.369 1796.869 2599.640 63.550 3835.006 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 2 4 0.039 102.300 2 4 0.030 133.153 2 8 0.043 185.384 2 8 0.029 277.309 2 16 0.047 340.654 2 16 0.031 516.222 2 32 0.060 534.732 2 32 0.038 844.137 2 64 0.076 841.490 2 64 0.052 1225.733 2 128 0.104 1231.355 2 128 0.075 1704.352 2 256 0.171 1497.548 2 256 0.119 2151.787 2 512 0.330 1551.650 2 512 0.211 2426.535 2 1024 0.599 1709.780 2 1024 0.340 3011.899 2 2048 1.203 1702.326 2 2048 0.680 3011.899 2 4096 2.357 1737.798 2 4096 1.284 3190.319 2 8192 4.936 1659.650 2 8192 2.541 3223.845 2 16384 9.288 1763.983 2 16384 5.165 3172.205 2 32768 33.612 974.896 2 32768 13.474 2431.945 2 65536 82.340 795.919 2 65536 25.351 2585.164 2 131072 143.374 914.197 2 131072 43.692 2999.917 2 262144 274.993 953.275 2 262144 84.130 3115.938 2 524288 579.816 904.232 2 524288 169.442 3094.200 2 1048576 1126.103 931.155 2 1048576 475.089 2207.115 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1070.122 102.300 1763.983 2174.930 133.153 3223.845 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 3 4 0.038 105.517 3 4 0.062 64.528 3 8 0.042 190.650 3 8 0.030 266.305 3 16 0.049 327.360 3 16 0.032 500.812 3 32 0.061 524.288 3 32 0.040 798.915 3 64 0.086 743.589 3 64 0.058 1104.673 3 128 0.114 1123.161 3 128 0.082 1560.671 3 256 0.181 1414.680 3 256 0.129 1984.735 3 512 0.351 1458.888 3 512 0.235 2180.186 3 1024 0.660 1551.650 3 1024 0.413 2479.773 3 2048 1.331 1538.588 3 2048 0.805 2544.412 3 4096 2.529 1619.520 3 4096 1.617 2533.157 3 8192 5.326 1538.105 3 8192 3.086 2654.697 3 16384 10.208 1604.995 3 16384 6.170 2655.415 3 32768 23.660 1384.943 3 32768 12.932 2533.857 3 65536 63.512 1031.870 3 65536 24.486 2676.461 3 131072 134.604 973.759 3 131072 51.292 2555.411 3 262144 276.015 949.745 3 262144 108.676 2412.162 3 524288 586.475 893.965 3 524288 229.411 2285.367 3 1048576 1482.863 707.129 3 1048576 518.658 2021.710 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1035.916 105.517 1619.520 1884.908 64.528 2676.461 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 4 4 0.037 108.240 4 4 0.030 133.153 4 8 0.061 131.072 4 8 0.029 275.036 4 16 0.046 347.714 4 16 0.031 516.222 4 32 0.054 593.884 4 32 0.036 888.859 4 64 0.080 798.915 4 64 0.054 1187.768 4 128 0.102 1257.309 4 128 0.075 1709.780 4 256 0.169 1514.445 4 256 0.129 1981.073 4 512 0.326 1570.946 4 512 0.248 2062.905 4 1024 0.594 1724.194 4 1024 0.433 2365.070 4 2048 1.220 1678.705 4 2048 0.846 2421.064 4 4096 2.311 1772.400 4 4096 1.672 2449.718 4 8192 5.096 1607.473 4 8192 3.260 2512.963 4 16384 9.163 1788.080 4 16384 6.490 2524.502 4 32768 23.231 1410.527 4 32768 13.130 2495.668 4 65536 60.884 1076.408 4 65536 25.902 2530.149 4 131072 127.726 1026.196 4 131072 51.746 2532.993 4 262144 272.309 962.671 4 262144 117.553 2230.007 4 524288 568.179 922.752 4 524288 245.990 2131.338 4 1048576 1313.098 798.551 4 1048576 717.945 1460.524 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1110.025 108.240 1788.080 1810.989 133.153 2532.993 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 5 4 0.073 54.828 5 4 0.030 133.153 5 8 0.042 190.650 5 8 0.030 266.305 5 16 0.050 319.566 5 16 0.032 500.812 5 32 0.061 524.288 5 32 0.047 677.867 5 64 0.088 727.467 5 64 0.061 1048.576 5 128 0.117 1093.423 5 128 0.089 1439.332 5 256 0.201 1273.715 5 256 0.150 1707.062 5 512 0.375 1365.215 5 512 0.294 1741.674 5 1024 0.676 1514.980 5 1024 0.570 1797.057 5 2048 1.325 1545.786 5 2048 1.103 1856.480 5 4096 2.618 1564.651 5 4096 2.044 2003.951 5 8192 5.163 1586.688 5 8192 4.069 2013.227 5 16384 10.344 1583.909 5 16384 8.078 2028.200 5 32768 28.417 1153.118 5 32768 16.270 2013.994 5 65536 72.394 905.270 5 65536 32.182 2036.419 5 131072 147.810 886.760 5 131072 63.014 2080.045 5 262144 307.085 853.653 5 262144 139.387 1880.693 5 524288 625.664 837.971 5 524288 303.887 1725.274 5 1048576 1355.441 773.605 5 1048576 727.501 1441.340 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 987.134 54.828 1586.688 1494.287 133.153 2080.045 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 6 4 0.041 97.542 6 4 0.085 47.127 6 8 0.043 186.414 6 8 0.029 275.036 6 16 0.051 313.593 6 16 0.032 500.812 6 32 0.065 491.640 6 32 0.049 651.542 6 64 0.085 754.032 6 64 0.061 1052.688 6 128 0.116 1104.673 6 128 0.086 1491.308 6 256 0.198 1293.665 6 256 0.156 1639.300 6 512 0.380 1347.229 6 512 0.289 1771.851 6 1024 0.694 1475.934 6 1024 0.524 1954.924 6 2048 1.369 1495.983 6 2048 1.067 1919.538 6 4096 2.690 1522.633 6 4096 2.042 2006.057 6 8192 5.363 1527.507 6 8192 3.968 2064.516 6 16384 10.671 1535.356 6 16384 7.921 2068.431 6 32768 26.412 1240.648 6 32768 15.810 2072.611 6 65536 68.823 952.238 6 65536 31.537 2078.063 6 131072 142.556 919.442 6 131072 72.537 1806.969 6 262144 324.331 808.261 6 262144 166.568 1573.795 6 524288 696.083 753.198 6 524288 342.566 1530.473 6 1048576 1385.574 756.781 6 1048576 818.472 1281.138 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 977.725 97.542 1535.356 1462.431 47.127 2078.063 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 7 4 0.040 99.864 7 4 0.030 133.153 7 8 0.042 189.573 7 8 0.030 266.305 7 16 0.049 327.360 7 16 0.032 497.103 7 32 0.061 524.288 7 32 0.046 695.429 7 64 0.088 725.501 7 64 0.067 955.286 7 128 0.119 1075.894 7 128 0.100 1278.264 7 256 0.207 1237.030 7 256 0.168 1525.201 7 512 0.395 1296.790 7 512 0.363 1410.035 7 1024 0.732 1398.557 7 1024 0.577 1774.780 7 2048 1.445 1417.247 7 2048 1.135 1804.229 7 4096 2.863 1430.702 7 4096 2.229 1837.616 7 8192 5.679 1442.474 7 8192 4.418 1854.176 7 16384 11.308 1448.892 7 16384 8.804 1860.955 7 32768 28.484 1150.406 7 32768 17.664 1855.077 7 65536 72.438 904.718 7 65536 35.217 1860.917 7 131072 149.652 875.845 7 131072 78.320 1673.544 7 262144 308.095 850.855 7 262144 171.648 1527.218 7 524288 698.996 750.059 7 524288 424.076 1236.307 7 1048576 1548.478 677.166 7 1048576 880.135 1191.381 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 938.064 99.864 1448.892 1328.262 133.153 1860.955 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 8 4 0.075 53.431 8 4 0.028 142.180 8 8 0.036 222.215 8 8 0.028 284.360 8 16 0.041 390.168 8 16 0.029 550.073 8 32 0.054 591.268 8 32 0.040 798.915 8 64 0.079 810.983 8 64 0.060 1069.464 8 128 0.106 1209.169 8 128 0.092 1390.857 8 256 0.176 1454.935 8 256 0.164 1562.943 8 512 0.330 1551.650 8 512 0.322 1589.551 8 1024 0.621 1648.740 8 1024 0.590 1735.340 8 2048 1.195 1713.874 8 2048 1.308 1565.792 8 4096 2.346 1745.922 8 4096 2.337 1752.511 8 8192 4.664 1756.363 8 8192 4.593 1783.624 8 16384 9.412 1740.747 8 16384 9.195 1781.821 8 32768 25.352 1292.521 8 32768 19.698 1663.507 8 65536 65.861 995.066 8 65536 44.030 1488.441 8 131072 138.767 944.547 8 131072 90.917 1441.665 8 262144 286.860 913.840 8 262144 184.904 1417.731 8 524288 584.560 896.893 8 524288 494.546 1060.140 8 1048576 1708.068 613.896 8 1048576 1075.888 974.614 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1081.380 53.431 1756.363 1265.975 142.180 1783.624 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 9 4 0.039 102.928 9 4 0.064 62.602 9 8 0.042 190.650 9 8 0.032 250.406 9 16 0.050 319.566 9 16 0.037 432.960 9 32 0.063 506.482 9 32 0.045 713.924 9 64 0.088 727.467 9 64 0.076 841.490 9 128 0.115 1111.534 9 128 0.112 1144.714 9 256 0.212 1207.809 9 256 0.174 1470.879 9 512 0.399 1282.846 9 512 0.339 1510.185 9 1024 0.752 1361.752 9 1024 0.619 1654.456 9 2048 1.472 1391.308 9 2048 1.229 1666.331 9 4096 2.919 1403.240 9 4096 2.441 1678.049 9 8192 5.788 1415.321 9 8192 4.807 1704.183 9 16384 11.557 1417.656 9 16384 9.580 1710.205 9 32768 29.813 1099.125 9 32768 19.166 1709.695 9 65536 75.147 872.102 9 65536 38.403 1706.542 9 131072 161.313 812.533 9 131072 94.554 1386.214 9 262144 315.975 829.635 9 262144 195.129 1343.440 9 524288 682.960 767.670 9 524288 426.262 1229.966 9 1048576 1812.061 578.665 9 1048576 890.338 1177.728 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 915.699 102.928 1417.656 1231.262 62.602 1710.205 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 10 4 0.041 97.542 10 4 0.065 61.455 10 8 0.043 186.414 10 8 0.032 250.406 10 16 0.051 313.593 10 16 0.037 432.960 10 32 0.063 506.482 10 32 0.053 604.584 10 64 0.085 751.920 10 64 0.073 877.240 10 128 0.122 1048.576 10 128 0.112 1142.279 10 256 0.203 1260.260 10 256 0.181 1414.680 10 512 0.390 1312.643 10 512 0.356 1437.405 10 1024 0.782 1309.441 10 1024 0.649 1577.872 10 2048 1.421 1441.264 10 2048 1.291 1586.322 10 4096 2.822 1451.370 10 4096 2.539 1613.285 10 8192 5.595 1464.173 10 8192 5.050 1622.196 10 16384 11.284 1451.953 10 16384 10.529 1556.077 10 32768 28.724 1140.781 10 32768 20.282 1615.617 10 65536 70.650 927.617 10 65536 41.312 1586.368 10 131072 147.874 886.376 10 131072 89.905 1457.894 10 262144 302.839 865.622 10 262144 194.936 1344.769 10 524288 632.763 828.569 10 524288 520.169 1007.919 10 1048576 1909.518 549.131 10 1048576 922.694 1136.429 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 936.512 97.542 1464.173 1175.040 61.455 1622.196 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 11 4 0.064 62.602 11 4 0.030 134.218 11 8 0.065 123.362 11 8 0.032 250.406 11 16 0.074 216.480 11 16 0.040 399.458 11 32 0.086 372.827 11 32 0.058 550.073 11 64 0.116 551.202 11 64 0.071 900.790 11 128 0.127 1007.262 11 128 0.140 914.601 11 256 0.277 924.046 11 256 0.219 1169.653 11 512 0.414 1236.318 11 512 0.381 1343.857 11 1024 0.763 1342.177 11 1024 0.675 1517.120 11 2048 1.494 1370.661 11 2048 1.311 1562.090 11 4096 2.969 1379.577 11 4096 2.525 1622.120 11 8192 5.887 1391.533 11 8192 4.947 1655.971 11 16384 11.713 1398.784 11 16384 9.899 1655.133 11 32768 30.573 1071.799 11 32768 19.561 1675.166 11 65536 73.974 885.931 11 65536 40.485 1618.767 11 131072 153.083 856.215 11 131072 102.442 1279.475 11 262144 320.241 818.584 11 262144 236.057 1110.511 11 524288 660.139 794.209 11 524288 536.660 976.946 11 1048576 1782.796 588.164 11 1048576 1269.706 825.842 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 862.723 62.602 1398.784 1113.800 134.218 1675.166 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 12 4 0.064 62.602 12 4 0.030 133.153 12 8 0.043 186.414 12 8 0.032 250.406 12 16 0.049 325.771 12 16 0.039 411.711 12 32 0.060 534.732 12 32 0.058 552.336 12 64 0.087 735.440 12 64 0.085 751.920 12 128 0.122 1048.576 12 128 0.114 1123.161 12 256 0.221 1158.298 12 256 0.202 1267.700 12 512 0.408 1254.371 12 512 0.391 1309.441 12 1024 0.755 1356.163 12 1024 0.719 1424.533 12 2048 1.539 1330.741 12 2048 1.427 1435.244 12 4096 2.945 1390.857 12 4096 2.813 1456.045 12 8192 5.814 1409.052 12 8192 5.582 1467.550 12 16384 11.855 1382.018 12 16384 11.149 1469.558 12 32768 29.954 1093.946 12 32768 25.109 1305.040 12 65536 70.465 930.049 12 65536 55.884 1172.717 12 131072 148.505 882.610 12 131072 114.426 1145.475 12 262144 302.702 866.013 12 262144 233.760 1121.423 12 524288 625.105 838.720 12 524288 525.385 997.912 12 1048576 1909.187 549.226 12 1048576 1873.210 559.775 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 912.400 62.602 1409.052 1018.689 133.153 1469.558 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 13 4 0.060 66.576 13 4 0.081 49.345 13 8 0.064 124.738 13 8 0.081 98.981 13 16 0.074 215.784 13 16 0.059 270.600 13 32 0.101 317.300 13 32 0.075 426.088 13 64 0.145 441.506 13 64 0.111 576.042 13 128 0.182 703.632 13 128 0.161 795.364 13 256 0.330 775.825 13 256 0.272 941.053 13 512 0.710 721.116 13 512 0.537 953.590 13 1024 1.185 864.179 13 1024 0.977 1048.064 13 2048 2.378 861.233 13 2048 1.947 1051.915 13 4096 4.657 879.530 13 4096 3.846 1065.022 13 8192 9.249 885.697 13 8192 7.608 1076.736 13 16384 18.448 888.124 13 16384 15.168 1080.172 13 32768 49.687 659.490 13 32768 30.547 1072.711 13 65536 120.125 545.565 13 65536 77.117 849.826 13 131072 233.443 561.473 13 131072 175.811 745.528 13 262144 472.055 555.325 13 262144 337.884 775.840 13 524288 1228.126 426.901 13 524288 584.971 896.263 13 1048576 1598.766 655.866 13 1048576 1249.341 839.303 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 586.835 66.576 888.124 769.076 49.345 1080.172 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 14 4 0.043 93.207 14 4 0.063 63.310 14 8 0.043 186.414 14 8 0.032 248.551 14 16 0.050 321.095 14 16 0.040 401.849 14 32 0.068 470.939 14 32 0.051 627.186 14 64 0.091 702.711 14 64 0.080 798.915 14 128 0.128 999.760 14 128 0.112 1142.279 14 256 0.225 1138.645 14 256 0.194 1320.716 14 512 0.443 1155.804 14 512 0.387 1323.157 14 1024 0.812 1261.371 14 1024 0.699 1464.859 14 2048 1.727 1185.800 14 2048 1.553 1318.688 14 4096 3.174 1290.458 14 4096 2.827 1448.922 14 8192 6.281 1304.222 14 8192 5.819 1407.782 14 16384 14.321 1144.047 14 16384 11.594 1413.138 14 32768 34.968 937.082 14 32768 24.617 1331.115 14 65536 122.357 535.613 14 65536 58.961 1111.512 14 131072 193.552 677.193 14 131072 121.008 1083.169 14 262144 368.860 710.687 14 262144 241.460 1085.662 14 524288 851.373 615.815 14 524288 721.639 726.524 14 1048576 2303.422 455.225 14 1048576 1546.478 678.041 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 799.268 93.207 1304.222 999.757 63.310 1464.859 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 15 4 0.039 102.928 15 4 0.030 133.153 15 8 0.042 190.650 15 8 0.030 266.305 15 16 0.050 319.566 15 16 0.040 399.458 15 32 0.067 477.643 15 32 0.051 627.186 15 64 0.096 667.750 15 64 0.080 798.915 15 128 0.129 992.368 15 128 0.113 1132.639 15 256 0.234 1093.423 15 256 0.198 1292.108 15 512 0.464 1103.537 15 512 0.393 1302.295 15 1024 1.278 801.150 15 1024 0.720 1422.175 15 2048 1.730 1183.839 15 2048 1.432 1430.226 15 4096 3.425 1195.953 15 4096 2.820 1452.475 15 8192 6.654 1231.135 15 8192 5.611 1460.004 15 16384 13.275 1234.208 15 16384 11.204 1462.334 15 32768 35.410 925.390 15 32768 26.136 1253.753 15 65536 80.669 812.405 15 65536 58.717 1116.133 15 131072 166.825 785.686 15 131072 143.792 911.539 15 262144 343.319 763.558 15 262144 241.190 1086.877 15 524288 723.012 725.144 15 524288 592.190 885.337 15 1048576 1847.124 567.680 15 1048576 1484.794 706.210 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 798.632 102.928 1234.208 1007.322 133.153 1462.334 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 16 4 0.072 55.554 16 4 0.028 142.180 16 8 0.033 243.148 16 8 0.028 286.790 16 16 0.042 381.300 16 16 0.032 500.812 16 32 0.053 604.584 16 32 0.109 293.052 16 64 0.077 831.070 16 64 0.070 913.046 16 128 0.102 1254.371 16 128 0.133 962.134 16 256 0.174 1472.897 16 256 0.256 1000.691 16 512 0.338 1514.445 16 512 0.524 977.017 16 1024 0.610 1678.377 16 1024 0.976 1049.088 16 2048 1.187 1725.233 16 2048 2.383 859.423 16 4096 2.309 1773.864 16 4096 4.023 1018.187 16 8192 4.606 1778.546 16 8192 7.747 1057.418 16 16384 9.130 1794.523 16 16384 15.411 1063.127 16 32768 26.629 1230.539 16 32768 33.945 965.324 16 65536 65.103 1006.654 16 65536 69.936 937.088 16 131072 133.787 979.705 16 131072 145.523 900.697 16 262144 277.214 945.638 16 262144 298.011 879.645 16 524288 608.153 862.099 16 524288 617.123 849.568 16 1048576 2012.680 520.985 16 1048576 1906.118 550.111 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1087.028 55.554 1794.523 800.284 142.180 1063.127 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 17 4 0.058 69.042 17 4 0.081 49.345 17 8 0.067 119.411 17 8 0.049 162.886 17 16 0.080 200.325 17 16 0.059 271.696 17 32 0.109 293.693 17 32 0.072 444.430 17 64 0.155 412.978 17 64 0.125 512.281 17 128 0.204 627.186 17 128 0.178 719.666 17 256 0.368 695.429 17 256 0.308 831.070 17 512 0.700 731.432 17 512 0.586 873.671 17 1024 1.360 752.975 17 1024 1.086 942.913 17 2048 2.568 797.506 17 2048 2.165 945.924 17 4096 5.079 806.453 17 4096 4.250 963.753 17 8192 10.122 809.321 17 8192 8.406 974.551 17 16384 20.145 813.306 17 16384 16.907 969.067 17 32768 55.056 595.175 17 32768 42.781 765.945 17 65536 124.151 527.873 17 65536 91.643 715.122 17 131072 258.432 507.182 17 131072 191.792 683.407 17 262144 530.568 494.082 17 262144 435.531 601.895 17 524288 974.159 538.196 17 524288 533.192 983.301 17 1048576 1651.817 634.802 17 1048576 1481.884 707.597 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 548.756 69.042 813.306 690.448 49.345 983.301 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 18 4 0.043 92.692 18 4 0.072 55.554 18 8 0.045 177.537 18 8 0.032 250.406 18 16 0.054 296.942 18 16 0.039 409.200 18 32 0.074 431.568 18 32 0.049 654.721 18 64 0.097 661.171 18 64 0.075 854.890 18 128 0.151 848.137 18 128 0.128 999.760 18 256 0.243 1053.721 18 256 0.213 1201.053 18 512 0.465 1100.709 18 512 0.453 1130.255 18 1024 0.871 1175.737 18 1024 0.741 1381.907 18 2048 1.711 1197.037 18 2048 1.556 1316.263 18 4096 3.371 1215.070 18 4096 2.882 1421.233 18 8192 6.733 1216.705 18 8192 5.694 1438.730 18 16384 13.434 1219.576 18 16384 11.310 1448.617 18 32768 35.832 914.486 18 32768 29.160 1123.730 18 65536 104.409 627.685 18 65536 66.924 979.262 18 131072 183.439 714.526 18 131072 145.792 899.034 18 262144 411.693 636.747 18 262144 256.475 1022.104 18 524288 968.337 541.431 18 524288 802.520 653.302 18 1048576 2618.866 400.393 18 1048576 2211.330 474.183 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 764.309 92.692 1219.576 932.327 55.554 1448.617 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 19 4 0.060 66.841 19 4 0.045 88.768 19 8 0.070 114.520 19 8 0.048 166.111 19 16 0.084 190.110 19 16 0.058 276.168 19 32 0.109 293.693 19 32 0.143 223.696 19 64 0.156 409.825 19 64 0.118 543.392 19 128 0.228 560.994 19 128 0.181 707.340 19 256 0.403 635.350 19 256 0.321 797.136 19 512 0.744 688.296 19 512 0.638 802.498 19 1024 1.393 735.062 19 1024 1.241 825.162 19 2048 2.716 754.098 19 2048 2.425 844.552 19 4096 5.408 757.390 19 4096 4.538 902.636 19 8192 10.976 746.367 19 8192 8.999 910.336 19 16384 21.350 767.395 19 16384 18.432 888.894 19 32768 60.379 542.705 19 32768 47.459 690.447 19 65536 136.897 478.725 19 65536 102.661 638.372 19 131072 277.736 471.930 19 131072 207.283 632.334 19 262144 587.415 446.267 19 262144 422.477 620.493 19 524288 1125.233 465.937 19 524288 778.734 673.257 19 1048576 1717.504 610.523 19 1048576 1605.762 653.008 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 512.423 66.841 767.395 625.505 88.768 910.336 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 20 4 0.068 58.662 20 4 0.030 134.218 20 8 0.046 174.763 20 8 0.032 250.406 20 16 0.055 290.515 20 16 0.039 411.711 20 32 0.065 493.448 20 32 0.048 667.750 20 64 0.102 627.186 20 64 0.085 751.920 20 128 0.145 883.011 20 128 0.118 1084.588 20 256 0.244 1049.601 20 256 0.204 1254.371 20 512 0.456 1122.574 20 512 0.388 1319.904 20 1024 0.908 1127.880 20 1024 0.719 1424.061 20 2048 1.731 1183.024 20 2048 1.437 1425.006 20 4096 3.402 1204.000 20 4096 2.862 1431.179 20 8192 6.763 1211.300 20 8192 5.723 1431.417 20 16384 13.450 1218.150 20 16384 11.321 1447.213 20 32768 36.405 900.094 20 32768 28.644 1143.971 20 65536 81.109 807.999 20 65536 63.495 1032.142 20 131072 173.088 757.256 20 131072 165.283 793.016 20 262144 384.953 680.977 20 262144 294.181 891.098 20 524288 759.333 690.458 20 524288 789.871 663.764 20 1048576 2646.183 396.260 20 1048576 2172.689 482.617 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 783.008 58.662 1218.150 949.492 134.218 1447.213 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 21 4 0.098 40.820 21 4 0.044 91.181 21 8 0.095 84.308 21 8 0.049 163.680 21 16 0.084 190.650 21 16 0.058 276.168 21 32 0.110 290.515 21 32 0.080 400.650 21 64 0.158 404.880 21 64 0.121 528.416 21 128 0.226 566.918 21 128 0.198 646.054 21 256 0.390 656.321 21 256 0.347 737.967 21 512 0.761 672.771 21 512 0.694 737.713 21 1024 1.400 731.432 21 1024 1.222 838.042 21 2048 2.899 706.467 21 2048 2.352 870.749 21 4096 5.489 746.237 21 4096 4.665 878.047 21 8192 11.233 729.274 21 8192 9.256 885.036 21 16384 21.779 752.282 21 16384 18.396 890.633 21 32768 58.992 555.464 21 32768 47.184 694.473 21 65536 135.636 483.175 21 65536 103.780 631.489 21 131072 260.144 503.844 21 131072 207.013 633.159 21 262144 534.154 490.765 21 262144 356.404 735.525 21 524288 746.338 702.481 21 524288 887.167 590.969 21 1048576 2063.360 508.189 21 1048576 1647.699 636.388 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 516.673 40.820 752.282 624.544 91.181 890.633 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 22 4 0.075 53.261 22 4 0.030 133.153 22 8 0.046 173.857 22 8 0.033 243.148 22 16 0.053 302.292 22 16 0.038 419.430 22 32 0.072 444.430 22 32 0.053 604.584 22 64 0.105 610.081 22 64 0.084 760.440 22 128 0.151 848.137 22 128 0.126 1016.801 22 256 0.264 969.956 22 256 0.216 1185.146 22 512 0.498 1028.488 22 512 0.408 1255.104 22 1024 0.997 1027.258 22 1024 0.753 1360.028 22 2048 1.842 1111.822 22 2048 1.484 1380.131 22 4096 3.663 1118.190 22 4096 2.936 1395.149 22 8192 7.278 1125.589 22 8192 5.801 1412.179 22 16384 15.125 1083.237 22 16384 13.626 1202.398 22 32768 38.784 844.884 22 32768 31.351 1045.203 22 65536 88.173 743.267 22 65536 68.198 960.967 22 131072 174.588 750.749 22 131072 143.394 914.069 22 262144 432.284 606.416 22 262144 340.010 770.989 22 524288 840.388 623.864 22 524288 929.544 564.027 22 1048576 2703.491 387.860 22 1048576 2427.675 431.926 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 729.139 53.261 1125.589 897.625 133.153 1412.179 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 23 4 0.095 42.048 23 4 0.045 89.241 23 8 0.069 115.705 23 8 0.049 162.886 23 16 0.080 200.325 23 16 0.058 276.168 23 32 0.110 291.145 23 32 0.077 415.535 23 64 0.157 407.338 23 64 0.128 499.880 23 128 0.232 551.769 23 128 0.199 642.959 23 256 0.411 622.820 23 256 0.347 737.967 23 512 0.855 598.852 23 512 0.672 762.059 23 1024 1.471 696.218 23 1024 1.235 829.144 23 2048 2.935 697.801 23 2048 2.455 834.217 23 4096 5.790 707.427 23 4096 4.849 844.676 23 8192 11.833 692.304 23 8192 9.622 851.395 23 16384 22.977 713.057 23 16384 19.191 853.732 23 32768 64.514 507.921 23 32768 50.639 647.091 23 65536 149.339 438.841 23 65536 117.401 558.223 23 131072 299.858 437.113 23 131072 235.322 556.990 23 262144 583.135 449.543 23 262144 507.339 516.704 23 524288 1161.645 451.332 23 524288 647.320 809.936 23 1048576 2004.067 523.224 23 1048576 2084.317 503.079 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 481.304 42.048 713.057 599.573 89.241 853.732 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 24 4 0.042 94.787 24 4 0.052 76.960 24 8 0.045 177.537 24 8 0.033 241.399 24 16 0.063 254.200 24 16 0.040 399.458 24 32 0.067 477.643 24 32 0.054 593.884 24 64 0.093 686.536 24 64 0.088 727.467 24 128 0.144 888.859 24 128 0.127 1007.262 24 256 0.256 999.760 24 256 0.220 1163.317 24 512 0.465 1101.274 24 512 0.425 1204.422 24 1024 0.991 1033.189 24 1024 0.788 1299.536 24 2048 1.876 1091.617 24 2048 1.560 1312.843 24 4096 4.071 1006.142 24 4096 3.101 1320.817 24 8192 8.071 1014.999 24 8192 6.284 1303.629 24 16384 15.653 1046.691 24 16384 12.604 1299.905 24 32768 39.497 829.630 24 32768 34.153 959.448 24 65536 84.715 773.607 24 65536 73.745 888.684 24 131072 171.200 765.607 24 131072 147.394 889.263 24 262144 461.639 567.855 24 262144 456.718 573.973 24 524288 1091.957 480.136 24 524288 1063.674 492.903 24 1048576 2662.500 393.831 24 1048576 2309.103 454.105 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 720.205 94.787 1101.274 853.120 76.960 1320.817 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 25 4 0.042 95.325 25 4 0.048 83.056 25 8 0.046 173.857 25 8 0.033 243.148 25 16 0.056 285.570 25 16 0.041 390.168 25 32 0.077 416.825 25 32 0.056 571.139 25 64 0.112 572.357 25 64 0.090 712.030 25 128 0.162 789.516 25 128 0.133 962.134 25 256 0.298 858.993 25 256 0.237 1080.223 25 512 0.565 906.111 25 512 0.515 994.205 25 1024 1.071 956.137 25 1024 0.847 1208.828 25 2048 2.111 970.176 25 2048 1.736 1179.612 25 4096 4.187 978.241 25 4096 3.370 1215.499 25 8192 8.353 980.726 25 8192 6.728 1217.610 25 16384 17.007 963.375 25 16384 13.663 1199.146 25 32768 43.557 752.303 25 32768 35.232 930.062 25 65536 98.657 664.282 25 65536 75.032 873.441 25 131072 242.932 539.542 25 131072 166.609 786.704 25 262144 427.249 613.563 25 262144 317.534 825.562 25 524288 809.320 647.813 25 524288 670.703 781.699 25 1048576 1874.012 559.535 25 1048576 2423.058 432.749 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 669.697 95.325 980.726 825.632 83.056 1217.610 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 26 4 0.059 67.650 26 4 0.081 49.345 26 8 0.069 116.105 26 8 0.049 163.680 26 16 0.083 192.842 26 16 0.061 262.144 26 32 0.120 266.834 26 32 0.081 395.923 26 64 0.171 373.866 26 64 0.120 532.610 26 128 0.304 421.075 26 128 0.202 633.850 26 256 0.424 603.565 26 256 0.345 742.047 26 512 0.867 590.617 26 512 0.677 756.423 26 1024 1.594 642.478 26 1024 1.283 798.173 26 2048 3.115 657.477 26 2048 2.535 807.856 26 4096 6.142 666.869 26 4096 4.957 826.313 26 8192 14.644 559.404 26 8192 9.913 826.392 26 16384 24.928 657.257 26 16384 20.644 793.647 26 32768 63.938 512.497 26 32768 53.107 617.018 26 65536 135.279 484.451 26 65536 112.440 582.853 26 131072 274.805 476.964 26 131072 227.883 575.172 26 262144 562.614 465.939 26 262144 465.623 562.996 26 524288 1380.322 379.830 26 524288 1291.682 405.896 26 1048576 2772.024 378.271 26 1048576 2984.766 351.309 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 448.105 67.650 666.869 562.297 49.345 826.392 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 27 4 0.060 66.576 27 4 0.081 49.345 27 8 0.069 115.705 27 8 0.049 162.886 27 16 0.084 190.650 27 16 0.060 267.366 27 32 0.119 268.973 27 32 0.081 394.758 27 64 0.184 347.714 27 64 0.128 499.880 27 128 0.276 463.619 27 128 0.203 630.130 27 256 0.491 521.487 27 256 0.373 686.097 27 512 0.940 544.632 27 512 0.698 733.430 27 1024 1.658 617.625 27 1024 1.279 800.553 27 2048 3.249 630.361 27 2048 2.522 812.057 27 4096 6.418 638.206 27 4096 5.012 817.233 27 8192 12.704 644.842 27 8192 9.861 830.748 27 16384 26.145 626.654 27 16384 21.450 763.830 27 32768 70.981 461.644 27 32768 56.971 575.169 27 65536 164.498 398.400 27 65536 131.121 499.813 27 131072 312.318 419.675 27 131072 249.018 526.356 27 262144 424.937 616.901 27 262144 361.910 724.335 27 524288 874.329 599.646 27 524288 1115.233 470.115 27 1048576 2109.412 497.094 27 1048576 2491.964 420.783 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 456.337 66.576 644.842 561.310 49.345 830.748 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 28 4 0.044 90.688 28 4 0.030 133.153 28 8 0.045 177.537 28 8 0.033 241.399 28 16 0.059 271.696 28 16 0.040 399.458 28 32 0.075 426.088 28 32 0.056 571.139 28 64 0.109 586.104 28 64 0.083 771.366 28 128 0.166 770.260 28 128 0.143 894.785 28 256 0.300 853.531 28 256 0.242 1057.874 28 512 0.625 819.025 28 512 0.464 1103.537 28 1024 1.062 964.078 28 1024 0.865 1183.839 28 2048 2.812 728.331 28 2048 1.709 1198.373 28 4096 4.400 930.906 28 4096 3.371 1215.070 28 8192 8.239 994.292 28 8192 6.710 1220.855 28 16384 17.208 952.110 28 16384 13.817 1185.779 28 32768 44.611 734.528 28 32768 36.219 904.716 28 65536 132.954 492.922 28 65536 116.115 564.406 28 131072 284.733 460.333 28 131072 234.686 558.500 28 262144 594.285 441.108 28 262144 489.819 535.186 28 524288 1278.663 410.028 28 524288 997.661 525.517 28 1048576 3119.543 336.131 28 1048576 2470.865 424.376 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 602.089 90.688 994.292 773.122 133.153 1220.855 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 29 4 0.099 40.330 29 4 0.044 91.181 29 8 0.068 117.735 29 8 0.049 163.680 29 16 0.083 192.842 29 16 0.060 266.305 29 32 0.118 271.147 29 32 0.080 399.458 29 64 0.187 341.956 29 64 0.135 474.268 29 128 0.262 488.509 29 128 0.195 657.125 29 256 0.471 543.392 29 256 0.366 699.506 29 512 0.989 517.715 29 512 0.739 692.737 29 1024 1.720 595.283 29 1024 1.335 767.095 29 2048 3.489 586.985 29 2048 2.881 710.852 29 4096 7.775 526.828 29 4096 5.279 775.895 29 8192 13.689 598.435 29 8192 10.765 760.979 29 16384 28.686 571.149 29 16384 23.649 692.800 29 32768 74.031 442.625 29 32768 61.157 535.801 29 65536 165.707 395.493 29 65536 130.720 501.346 29 131072 324.694 403.679 29 131072 248.955 526.489 29 262144 515.186 508.834 29 262144 358.041 732.162 29 524288 1021.300 513.354 29 524288 871.453 601.625 29 1048576 2683.665 390.725 29 1048576 2699.311 388.461 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 423.527 40.330 598.435 549.356 91.181 775.895 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 30 4 0.102 39.199 30 4 0.044 91.181 30 8 0.067 119.411 30 8 0.049 162.886 30 16 0.087 183.860 30 16 0.131 122.016 30 32 0.122 262.144 30 32 0.080 399.458 30 64 0.182 351.816 30 64 0.127 503.631 30 128 0.282 453.822 30 128 0.199 643.730 30 256 0.497 514.984 30 256 0.375 682.608 30 512 0.924 554.189 30 512 0.732 699.506 30 1024 1.758 582.447 30 1024 1.342 763.007 30 2048 3.418 599.186 30 2048 2.665 768.537 30 4096 6.743 607.449 30 4096 5.273 776.772 30 8192 13.487 607.406 30 8192 10.417 786.408 30 16384 31.873 514.040 30 16384 48.604 337.092 30 32768 108.034 303.312 30 32768 63.893 512.857 30 65536 165.458 396.089 30 65536 138.021 474.826 30 131072 331.489 395.404 30 131072 264.716 495.142 30 262144 616.672 425.095 30 262144 560.628 467.590 30 524288 1257.016 417.089 30 524288 953.572 549.815 30 1048576 2376.668 441.196 30 1048576 2315.385 452.873 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 408.849 39.199 607.449 509.997 91.181 786.408 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 31 4 0.073 54.828 31 4 0.030 133.153 31 8 0.044 181.375 31 8 0.033 241.399 31 16 0.058 276.168 31 16 0.040 399.458 31 32 0.080 399.458 31 32 0.053 601.873 31 64 0.123 521.234 31 64 0.083 771.366 31 128 0.202 633.102 31 128 0.133 962.134 31 256 0.355 721.116 31 256 0.244 1048.576 31 512 0.674 759.633 31 512 0.506 1012.009 31 1024 1.237 827.866 31 1024 0.975 1050.114 31 2048 2.476 827.148 31 2048 1.811 1130.999 31 4096 4.782 856.552 31 4096 3.527 1161.351 31 8192 9.500 862.313 31 8192 6.934 1181.437 31 16384 20.705 791.307 31 16384 18.800 871.488 31 32768 46.038 711.758 31 32768 41.975 780.655 31 65536 101.087 648.312 31 65536 85.053 770.532 31 131072 237.820 551.139 31 131072 298.333 439.348 31 262144 704.511 372.094 31 262144 553.332 473.755 31 524288 1306.871 401.178 31 524288 1313.332 399.204 31 1048576 3181.131 329.624 31 1048576 2506.205 418.392 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 564.537 54.828 862.313 728.802 133.153 1181.437 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 32 4 0.028 142.180 32 4 0.028 142.180 32 8 0.028 286.790 32 8 0.028 286.790 32 16 0.029 550.073 32 16 0.030 532.610 32 32 0.038 838.861 32 32 0.037 865.921 32 64 0.055 1162.058 32 64 0.053 1209.169 32 128 0.090 1424.061 32 128 0.077 1662.139 32 256 0.155 1651.910 32 256 0.131 1955.814 32 512 0.303 1689.602 32 512 0.252 2031.678 32 1024 0.556 1841.753 32 1024 0.452 2266.474 32 2048 1.103 1856.882 32 2048 0.892 2296.160 32 4096 2.234 1833.497 32 4096 1.918 2135.472 32 8192 4.351 1882.829 32 8192 3.602 2274.274 32 16384 11.466 1428.917 32 16384 7.160 2288.208 32 32768 23.992 1365.785 32 32768 28.442 1152.103 32 65536 67.655 968.678 32 65536 60.260 1087.553 32 131072 159.372 822.429 32 131072 152.846 857.544 32 262144 414.480 632.465 32 262144 419.396 625.051 32 524288 730.643 717.571 32 524288 748.941 700.039 32 1048576 1937.569 541.181 32 1048576 2588.240 405.131 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1138.817 142.180 1882.829 1303.911 142.180 2296.160 stats by bits per item pack: unpack: bits avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1 1065.331 62.369 1796.869 2599.640 63.550 3835.006 2 1070.122 102.300 1763.983 2174.930 133.153 3223.845 3 1035.916 105.517 1619.520 1884.908 64.528 2676.461 4 1110.025 108.240 1788.080 1810.989 133.153 2532.993 5 987.134 54.828 1586.688 1494.287 133.153 2080.045 6 977.725 97.542 1535.356 1462.431 47.127 2078.063 7 938.064 99.864 1448.892 1328.262 133.153 1860.955 8 1081.380 53.431 1756.363 1265.975 142.180 1783.624 9 915.699 102.928 1417.656 1231.262 62.602 1710.205 10 936.512 97.542 1464.173 1175.040 61.455 1622.196 11 862.723 62.602 1398.784 1113.800 134.218 1675.166 12 912.400 62.602 1409.052 1018.689 133.153 1469.558 13 586.835 66.576 888.124 769.076 49.345 1080.172 14 799.268 93.207 1304.222 999.757 63.310 1464.859 15 798.632 102.928 1234.208 1007.322 133.153 1462.334 16 1087.028 55.554 1794.523 800.284 142.180 1063.127 17 548.756 69.042 813.306 690.448 49.345 983.301 18 764.309 92.692 1219.576 932.327 55.554 1448.617 19 512.423 66.841 767.395 625.505 88.768 910.336 20 783.008 58.662 1218.150 949.492 134.218 1447.213 21 516.673 40.820 752.282 624.544 91.181 890.633 22 729.139 53.261 1125.589 897.625 133.153 1412.179 23 481.304 42.048 713.057 599.573 89.241 853.732 24 720.205 94.787 1101.274 853.120 76.960 1320.817 25 669.697 95.325 980.726 825.632 83.056 1217.610 26 448.105 67.650 666.869 562.297 49.345 826.392 27 456.337 66.576 644.842 561.310 49.345 830.748 28 602.089 90.688 994.292 773.122 133.153 1220.855 29 423.527 40.330 598.435 549.356 91.181 775.895 30 408.849 39.199 607.449 509.997 91.181 786.408 31 564.537 54.828 862.313 728.802 133.153 1181.437 32 1138.817 142.180 1882.829 1303.911 142.180 2296.160 stats by size pack: unpack: size(B) avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4 76.342 39.199 142.180 97.513 47.127 142.180 8 164.900 84.308 286.790 231.156 98.981 286.790 16 283.581 183.860 550.073 397.738 122.016 550.073 32 440.924 262.144 838.861 587.473 223.696 888.859 64 619.701 341.956 1162.058 808.710 474.268 1225.733 128 896.881 421.075 1424.061 1091.645 630.130 2130.440 256 1035.626 514.984 1651.910 1280.042 682.608 2671.000 512 1084.407 517.715 1689.602 1312.007 692.737 2535.400 1024 1156.380 582.447 1841.753 1483.911 763.007 3469.279 2048 1175.812 586.985 1856.882 1477.560 710.852 3414.123 4096 1204.245 526.828 1833.497 1524.081 775.895 3562.071 8192 1202.216 559.404 1882.829 1549.748 760.979 3727.057 16384 1190.360 514.040 1795.743 1512.973 337.092 3781.405 32768 911.729 303.312 1435.304 1339.848 512.857 3801.382 65536 734.712 395.493 1076.408 1279.644 474.826 3835.006 131072 714.064 395.404 1026.196 1205.209 439.348 3799.621 262144 687.295 372.094 962.671 1168.102 467.590 3794.128 524288 665.027 379.830 922.752 1071.705 399.204 3795.667 1048576 559.512 329.624 931.155 841.889 351.309 2252.211 real 3m 34.44s user 3m 26.79s sys 0m 0.24s ================================================ FILE: benchmark/PackedArraySelfBench-unrolled-ipad2-cortex-a9-1GHz.txt ================================================ -- PackedArray self bench ------------------------------------------------------ memcpy: bits size (B) time (µs) speed (B/µs) 32 4 0.083 48.210 32 8 0.044 182.361 32 16 0.037 430.185 32 32 0.042 762.601 32 64 0.050 1278.264 32 128 0.067 1910.573 32 256 0.106 2412.903 32 512 0.178 2878.664 32 1024 0.320 3198.040 32 2048 0.629 3256.230 32 4096 1.207 3393.890 32 8192 2.377 3446.313 32 16384 4.701 3485.291 32 32768 10.088 3248.226 32 65536 24.276 2699.619 32 131072 50.421 2599.552 32 262144 100.446 2609.801 32 524288 294.920 1777.730 32 1048576 1887.243 555.613 avg (B/µs) min (B/µs) max (B/µs) 2114.424 48.210 3485.291 loopcpy: bits size (B) time (µs) speed (B/µs) 32 4 0.044 90.688 32 8 0.033 243.148 32 16 0.028 573.580 32 32 0.033 972.592 32 64 0.042 1525.201 32 128 0.059 2173.566 32 256 0.096 2664.372 32 512 0.167 3063.457 32 1024 0.312 3281.106 32 2048 0.647 3165.046 32 4096 1.199 3416.160 32 8192 2.364 3465.430 32 16384 4.664 3512.727 32 32768 10.030 3266.989 32 65536 24.569 2667.423 32 131072 51.566 2541.836 32 262144 104.554 2507.255 32 524288 291.296 1799.846 32 1048576 1871.676 560.234 avg (B/µs) min (B/µs) max (B/µs) 2183.719 90.688 3512.727 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 1 4 0.189 21.157 1 4 0.035 114.912 1 8 0.085 94.254 1 8 0.036 222.215 1 16 0.090 177.537 1 16 0.038 422.068 1 32 0.109 293.052 1 32 0.045 713.924 1 64 0.143 447.392 1 64 0.072 888.859 1 128 0.123 1040.448 1 128 0.075 1704.352 1 256 0.210 1218.776 1 256 0.115 2227.680 1 512 0.404 1266.952 1 512 0.208 2459.890 1 1024 0.737 1389.507 1 1024 0.365 2805.335 1 2048 1.501 1364.565 1 2048 0.724 2828.428 1 4096 2.869 1427.730 1 4096 1.368 2994.052 1 8192 5.698 1437.706 1 8192 2.931 2795.065 1 16384 11.344 1444.293 1 16384 5.547 2953.644 1 32768 28.448 1151.852 1 32768 10.409 3148.010 1 65536 77.663 843.852 1 65536 22.634 2895.463 1 131072 167.196 783.942 1 131072 44.122 2970.674 1 262144 337.417 776.914 1 262144 84.071 3118.129 1 524288 678.917 772.241 1 524288 169.172 3099.145 1 1048576 1912.955 548.145 1 1048576 347.300 3019.224 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 868.438 21.157 1444.293 2177.951 114.912 3148.010 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 2 4 0.045 88.768 2 4 0.148 27.060 2 8 0.045 177.537 2 8 0.032 250.406 2 16 0.049 325.771 2 16 0.037 432.960 2 32 0.063 508.400 2 32 0.044 729.444 2 64 0.070 913.046 2 64 0.065 983.280 2 128 0.126 1016.801 2 128 0.074 1726.273 2 256 0.206 1242.757 2 256 0.139 1841.753 2 512 0.396 1292.886 2 512 0.248 2064.888 2 1024 0.713 1436.444 2 1024 0.441 2322.860 2 2048 1.430 1432.133 2 2048 0.875 2340.582 2 4096 2.774 1476.568 2 4096 1.737 2357.929 2 8192 5.538 1479.238 2 8192 3.436 2384.106 2 16384 10.983 1491.761 2 16384 6.753 2426.107 2 32768 28.124 1165.132 2 32768 13.644 2401.645 2 65536 74.252 882.614 2 65536 27.246 2405.344 2 131072 156.984 834.938 2 131072 53.583 2446.153 2 262144 315.746 830.237 2 262144 105.284 2489.870 2 524288 635.632 824.829 2 524288 211.315 2481.074 2 1048576 1936.778 541.402 2 1048576 460.051 2279.260 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 945.330 88.768 1491.761 1810.052 27.060 2489.870 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 3 4 0.055 72.944 3 4 0.037 108.240 3 8 0.055 145.889 3 8 0.039 204.600 3 16 0.061 262.144 3 16 0.042 381.300 3 32 0.072 444.430 3 32 0.052 615.678 3 64 0.099 646.832 3 64 0.076 844.137 3 128 0.133 963.862 3 128 0.103 1242.757 3 256 0.231 1108.093 3 256 0.165 1551.650 3 512 0.436 1174.130 3 512 0.302 1696.275 3 1024 0.788 1299.536 3 1024 0.522 1961.172 3 2048 1.588 1289.780 3 2048 1.022 2004.184 3 4096 3.039 1347.758 3 4096 1.973 2075.866 3 8192 5.967 1372.852 3 8192 3.831 2138.395 3 16384 11.999 1365.432 3 16384 7.618 2150.642 3 32768 30.531 1073.272 3 32768 15.053 2176.837 3 65536 78.835 831.308 3 65536 30.274 2164.751 3 131072 168.594 777.441 3 131072 60.353 2171.755 3 262144 339.322 772.553 3 262144 122.849 2133.872 3 524288 683.361 767.220 3 524288 261.658 2003.715 3 1048576 2076.965 504.860 3 1048576 597.944 1753.636 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 853.702 72.944 1372.852 1546.288 108.240 2176.837 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 4 4 0.160 25.003 4 4 0.030 134.218 4 8 0.044 182.361 4 8 0.031 258.111 4 16 0.050 321.095 4 16 0.036 444.430 4 32 0.054 593.884 4 32 0.043 741.534 4 64 0.076 841.490 4 64 0.068 941.879 4 128 0.118 1084.588 4 128 0.082 1560.671 4 256 0.219 1168.381 4 256 0.148 1729.053 4 512 0.414 1237.030 4 512 0.290 1764.572 4 1024 0.763 1341.758 4 1024 0.520 1969.265 4 2048 1.508 1358.092 4 2048 1.039 1971.525 4 4096 3.000 1365.324 4 4096 2.038 2009.812 4 8192 5.900 1388.441 4 8192 4.035 2030.237 4 16384 11.712 1398.927 4 16384 8.047 2036.012 4 32768 27.475 1192.653 4 32768 16.066 2039.577 4 65536 74.698 877.344 4 65536 32.107 2041.168 4 131072 165.054 794.117 4 131072 64.824 2021.964 4 262144 315.436 831.053 4 262144 134.088 1955.014 4 524288 630.519 831.518 4 524288 288.996 1814.171 4 1048576 2029.376 516.699 4 1048576 627.919 1669.923 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 913.145 25.003 1398.927 1533.323 134.218 2041.168 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 5 4 0.056 71.392 5 4 0.036 111.107 5 8 0.055 145.257 5 8 0.038 211.034 5 16 0.058 275.036 5 16 0.043 372.827 5 32 0.079 405.492 5 32 0.054 591.268 5 64 0.102 627.186 5 64 0.073 877.240 5 128 0.144 888.859 5 128 0.108 1185.146 5 256 0.251 1020.667 5 256 0.180 1422.175 5 512 0.481 1064.692 5 512 0.337 1519.804 5 1024 0.898 1140.459 5 1024 0.637 1607.398 5 2048 1.762 1162.215 5 2048 1.176 1741.321 5 4096 3.481 1176.623 5 4096 2.297 1783.069 5 8192 6.895 1188.096 5 8192 4.610 1776.983 5 16384 13.744 1192.094 5 16384 9.020 1816.438 5 32768 33.119 989.403 5 32768 18.707 1751.663 5 65536 85.409 767.318 5 65536 36.238 1808.479 5 131072 174.407 751.529 5 131072 75.103 1745.229 5 262144 350.057 748.861 5 262144 164.716 1591.491 5 524288 709.050 739.423 5 524288 351.650 1490.937 5 1048576 2235.768 469.000 5 1048576 774.929 1353.126 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 780.190 71.392 1192.094 1302.986 111.107 1816.438 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 6 4 0.150 26.673 6 4 0.036 111.107 6 8 0.057 140.395 6 8 0.038 211.034 6 16 0.060 266.305 6 16 0.042 381.300 6 32 0.076 420.745 6 32 0.054 591.268 6 64 0.097 659.547 6 64 0.079 810.983 6 128 0.145 881.561 6 128 0.105 1220.161 6 256 0.419 610.775 6 256 0.178 1437.405 6 512 0.488 1049.088 6 512 0.351 1457.898 6 1024 0.878 1166.160 6 1024 0.630 1625.035 6 2048 1.761 1163.002 6 2048 1.268 1615.257 6 4096 3.430 1194.125 6 4096 2.461 1664.393 6 8192 6.769 1210.233 6 8192 4.912 1667.787 6 16384 13.565 1207.809 6 16384 9.778 1675.594 6 32768 33.925 965.901 6 32768 18.870 1736.524 6 65536 84.223 778.124 6 65536 37.851 1731.427 6 131072 175.914 745.091 6 131072 75.734 1730.691 6 262144 354.519 739.435 6 262144 169.821 1543.649 6 524288 717.986 730.221 6 524288 357.563 1466.281 6 1048576 2300.061 455.891 6 1048576 852.565 1229.907 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 758.478 26.673 1210.233 1258.300 111.107 1736.524 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 7 4 0.055 72.944 7 4 0.035 114.912 7 8 0.055 145.889 7 8 0.035 228.261 7 16 0.058 275.036 7 16 0.042 381.300 7 32 0.083 385.683 7 32 0.055 583.555 7 64 0.106 603.226 7 64 0.080 798.915 7 128 0.176 727.467 7 128 0.114 1123.161 7 256 0.286 895.531 7 256 0.198 1292.108 7 512 0.512 1000.225 7 512 0.383 1337.163 7 1024 0.936 1094.259 7 1024 0.688 1488.208 7 2048 1.858 1102.263 7 2048 1.380 1484.094 7 4096 3.509 1167.269 7 4096 2.683 1526.692 7 8192 7.011 1168.460 7 8192 5.341 1533.780 7 16384 14.024 1168.281 7 16384 10.560 1551.510 7 32768 36.004 910.125 7 32768 21.116 1551.808 7 65536 87.857 745.939 7 65536 44.820 1462.202 7 131072 183.125 715.751 7 131072 100.755 1300.899 7 262144 369.154 710.121 7 262144 203.391 1288.867 7 524288 744.805 703.927 7 524288 411.322 1274.641 7 1048576 2410.626 434.981 7 1048576 1128.095 929.510 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 738.283 72.944 1168.460 1118.505 114.912 1551.808 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 8 4 0.151 26.504 8 4 0.031 129.056 8 8 0.050 159.783 8 8 0.032 250.406 8 16 0.049 325.771 8 16 0.038 422.068 8 32 0.057 561.580 8 32 0.052 615.678 8 64 0.080 801.300 8 64 0.081 789.516 8 128 0.124 1032.444 8 128 0.099 1290.555 8 256 0.227 1127.880 8 256 0.179 1429.749 8 512 0.440 1163.317 8 512 0.341 1501.737 8 1024 0.767 1335.085 8 1024 0.632 1620.742 8 2048 1.583 1293.665 8 2048 1.229 1666.331 8 4096 3.021 1355.842 8 4096 2.459 1665.684 8 8192 6.200 1321.325 8 8192 4.806 1704.606 8 16384 11.894 1377.503 8 16384 9.540 1717.386 8 32768 31.313 1046.460 8 32768 19.245 1702.684 8 65536 77.010 851.007 8 65536 38.430 1705.335 8 131072 160.255 817.895 8 131072 82.743 1584.087 8 262144 321.950 814.238 8 262144 188.077 1393.811 8 524288 654.897 800.565 8 524288 388.947 1347.968 8 1048576 2323.258 451.339 8 1048576 992.854 1056.123 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 877.027 26.504 1377.503 1241.764 129.056 1717.386 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 9 4 0.055 72.629 9 4 0.149 26.844 9 8 0.057 140.395 9 8 0.038 209.715 9 16 0.063 254.200 9 16 0.046 347.714 9 32 0.081 394.758 9 32 0.056 571.139 9 64 0.106 603.226 9 64 0.088 727.467 9 128 0.155 825.955 9 128 0.129 992.368 9 256 0.268 955.286 9 256 0.217 1179.936 9 512 0.503 1017.765 9 512 0.414 1237.030 9 1024 0.949 1079.138 9 1024 0.745 1374.390 9 2048 1.858 1102.263 9 2048 1.481 1382.797 9 4096 3.729 1098.457 9 4096 2.983 1373.181 9 8192 7.342 1115.757 9 8192 5.782 1416.838 9 16384 14.699 1114.635 9 16384 11.630 1408.763 9 32768 37.572 872.135 9 32768 23.369 1402.209 9 65536 90.242 726.224 9 65536 45.841 1429.638 9 131072 183.888 712.782 9 131072 97.503 1344.288 9 262144 369.453 709.546 9 262144 225.170 1164.205 9 524288 745.219 703.535 9 524288 462.377 1133.897 9 1048576 2509.155 417.900 9 1048576 1187.468 883.035 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 732.452 72.629 1115.757 1031.866 26.844 1429.638 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 10 4 0.055 72.944 10 4 0.036 111.107 10 8 0.057 140.395 10 8 0.037 216.480 10 16 0.070 228.261 10 16 0.045 355.073 10 32 0.078 410.452 10 32 0.060 532.610 10 64 0.127 503.631 10 64 0.088 727.467 10 128 0.159 804.904 10 128 0.133 963.862 10 256 0.278 920.876 10 256 0.231 1109.237 10 512 0.511 1002.092 10 512 0.433 1182.535 10 1024 0.980 1045.004 10 1024 0.799 1281.697 10 2048 1.901 1077.243 10 2048 1.556 1316.062 10 4096 3.689 1110.313 10 4096 3.051 1342.492 10 8192 7.417 1104.460 10 8192 6.056 1352.692 10 16384 14.935 1097.019 10 16384 12.042 1360.593 10 32768 37.834 866.095 10 32768 24.041 1362.995 10 65536 90.411 724.868 10 65536 48.072 1363.286 10 131072 185.326 707.252 10 131072 107.103 1223.793 10 262144 371.716 705.227 10 262144 233.664 1121.884 10 524288 752.021 697.172 10 524288 474.922 1103.945 10 1048576 2537.814 413.181 10 1048576 1301.392 805.734 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 717.442 72.944 1110.313 991.239 111.107 1363.286 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 11 4 0.163 24.528 11 4 0.067 59.705 11 8 0.058 138.084 11 8 0.067 119.411 11 16 0.070 228.261 11 16 0.072 222.215 11 32 0.082 390.168 11 32 0.087 367.720 11 64 0.108 592.573 11 64 0.118 543.392 11 128 0.174 736.448 11 128 0.117 1095.655 11 256 0.296 864.526 11 256 0.236 1084.588 11 512 0.566 904.585 11 512 0.451 1135.034 11 1024 1.035 989.396 11 1024 0.826 1239.887 11 2048 2.028 1009.868 11 2048 1.629 1257.125 11 4096 4.018 1019.456 11 4096 3.219 1272.489 11 8192 7.899 1037.087 11 8192 6.372 1285.582 11 16384 15.932 1028.365 11 16384 12.645 1295.689 11 32768 40.823 802.685 11 32768 25.185 1301.086 11 65536 96.413 679.741 11 65536 53.648 1221.593 11 131072 198.587 660.023 11 131072 125.507 1044.339 11 262144 396.459 661.213 11 262144 253.775 1032.979 11 524288 822.453 637.469 11 524288 514.294 1019.432 11 1048576 2626.226 399.271 11 1048576 1490.924 703.306 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 673.881 24.528 1037.087 910.591 59.705 1301.086 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 12 4 0.055 72.629 12 4 0.036 111.107 12 8 0.057 140.395 12 8 0.036 222.215 12 16 0.068 234.646 12 16 0.047 340.654 12 32 0.081 395.923 12 32 0.062 514.244 12 64 0.101 634.599 12 64 0.092 695.429 12 128 0.155 825.955 12 128 0.136 941.879 12 256 0.275 930.452 12 256 0.241 1062.059 12 512 0.542 944.779 12 512 0.467 1096.214 12 1024 1.025 999.062 12 1024 0.876 1169.017 12 2048 1.996 1026.031 12 2048 1.721 1190.071 12 4096 3.927 1043.037 12 4096 3.375 1213.610 12 8192 7.828 1046.500 12 8192 6.771 1209.850 12 16384 16.855 972.056 12 16384 13.314 1230.584 12 32768 38.862 843.189 12 32768 26.625 1230.727 12 65536 94.201 695.703 12 65536 59.806 1095.808 12 131072 195.005 672.147 12 131072 128.970 1016.299 12 262144 390.052 672.074 12 262144 259.010 1012.101 12 524288 789.188 664.338 12 524288 526.143 996.474 12 1048576 2635.484 397.868 12 1048576 1498.223 699.880 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 695.336 72.629 1046.500 897.275 111.107 1230.727 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 13 4 0.157 25.459 13 4 0.036 111.107 13 8 0.059 135.300 13 8 0.036 222.215 13 16 0.069 231.410 13 16 0.047 340.654 13 32 0.084 381.300 13 32 0.063 506.482 13 64 0.110 582.289 13 64 0.084 760.440 13 128 0.174 735.440 13 128 0.126 1016.801 13 256 0.316 810.371 13 256 0.225 1137.438 13 512 0.566 904.585 13 512 0.434 1179.936 13 1024 1.066 960.628 13 1024 0.782 1309.441 13 2048 2.128 962.458 13 2048 1.564 1309.441 13 4096 4.146 987.917 13 4096 3.045 1345.120 13 8192 8.230 995.357 13 8192 6.035 1357.395 13 16384 16.777 976.573 13 16384 12.025 1362.508 13 32768 42.638 768.515 13 32768 24.198 1354.158 13 65536 101.401 646.305 13 65536 54.546 1201.484 13 131072 206.783 633.862 13 131072 122.434 1070.553 13 262144 414.321 632.707 13 262144 251.282 1043.226 13 524288 841.374 623.133 13 524288 507.873 1032.321 13 1048576 2772.110 378.259 13 1048576 1650.161 635.439 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 651.151 25.459 995.357 962.956 111.107 1362.508 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 14 4 0.056 71.392 14 4 0.141 28.388 14 8 0.058 138.084 14 8 0.038 209.715 14 16 0.068 235.470 14 16 0.047 340.654 14 32 0.089 359.833 14 32 0.067 477.643 14 64 0.107 599.186 14 64 0.091 702.711 14 128 0.163 784.899 14 128 0.134 955.286 14 256 0.298 858.993 14 256 0.235 1088.988 14 512 0.566 904.585 14 512 0.461 1110.385 14 1024 1.072 955.286 14 1024 0.841 1217.740 14 2048 2.109 971.053 14 2048 1.677 1221.202 14 4096 4.183 979.189 14 4096 3.289 1245.369 14 8192 8.344 981.791 14 8192 6.502 1259.891 14 16384 16.719 979.957 14 16384 13.008 1259.521 14 32768 43.640 750.873 14 32768 25.972 1261.660 14 65536 100.738 650.559 14 65536 69.268 946.122 14 131072 202.824 646.235 14 131072 139.373 940.440 14 262144 416.296 629.706 14 262144 276.605 947.719 14 524288 865.522 605.748 14 524288 561.881 933.095 14 1048576 2799.287 374.587 14 1048576 1911.798 548.476 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 656.707 71.392 981.791 878.684 28.388 1261.660 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 15 4 0.055 72.629 15 4 0.036 111.107 15 8 0.056 142.785 15 8 0.038 211.034 15 16 0.069 231.410 15 16 0.046 347.714 15 32 0.088 363.734 15 32 0.068 469.293 15 64 0.124 516.222 15 64 0.097 659.547 15 128 0.179 714.875 15 128 0.135 948.535 15 256 0.323 792.429 15 256 0.243 1053.721 15 512 0.609 840.502 15 512 0.469 1091.756 15 1024 1.143 895.718 15 1024 0.865 1183.839 15 2048 2.271 901.830 15 2048 1.738 1178.479 15 4096 4.463 917.777 15 4096 3.389 1208.573 15 8192 8.881 922.434 15 8192 6.733 1216.662 15 16384 17.702 925.540 15 16384 13.366 1225.798 15 32768 46.132 710.308 15 32768 28.515 1149.146 15 65536 105.128 623.392 15 65536 70.075 935.226 15 131072 215.315 608.745 15 131072 142.594 919.198 15 262144 431.029 608.182 15 262144 285.853 917.059 15 524288 874.485 599.539 15 524288 579.952 904.020 15 1048576 2895.315 362.163 15 1048576 1932.552 542.586 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 618.432 72.629 925.540 856.489 111.107 1225.798 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 16 4 0.148 27.016 16 4 0.031 129.056 16 8 0.038 211.034 16 8 0.035 228.261 16 16 0.048 332.222 16 16 0.044 364.722 16 32 0.063 508.400 16 32 0.059 543.392 16 64 0.097 661.171 16 64 0.092 695.429 16 128 0.126 1016.801 16 128 0.154 831.070 16 256 0.220 1163.317 16 256 0.268 955.286 16 512 0.423 1210.532 16 512 0.536 955.286 16 1024 0.764 1340.502 16 1024 0.968 1057.613 16 2048 1.512 1354.452 16 2048 1.913 1070.530 16 4096 3.044 1345.647 16 4096 3.843 1065.815 16 8192 5.974 1371.263 16 8192 7.531 1087.781 16 16384 12.023 1362.725 16 16384 14.906 1099.160 16 32768 34.957 937.382 16 32768 30.399 1077.936 16 65536 81.744 801.723 16 65536 61.587 1064.119 16 131072 166.793 785.837 16 131072 154.566 848.000 16 262144 346.298 756.990 16 262144 314.463 833.625 16 524288 695.715 753.596 16 524288 632.250 829.242 16 1048576 2740.925 382.563 16 1048576 2004.740 523.048 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 859.114 27.016 1371.263 803.125 129.056 1099.160 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 17 4 0.055 72.629 17 4 0.146 27.369 17 8 0.063 126.620 17 8 0.041 195.084 17 16 0.066 242.270 17 16 0.047 340.654 17 32 0.083 385.683 17 32 0.063 508.400 17 64 0.120 533.669 17 64 0.095 672.771 17 128 0.185 691.844 17 128 0.144 888.859 17 256 0.327 782.611 17 256 0.245 1045.513 17 512 0.617 829.785 17 512 0.473 1082.947 17 1024 1.181 867.145 17 1024 0.893 1146.548 17 2048 2.316 884.284 17 2048 1.689 1212.583 17 4096 4.518 906.589 17 4096 3.330 1230.033 17 8192 9.063 903.894 17 8192 6.668 1228.581 17 16384 21.054 778.188 17 16384 13.240 1237.453 17 32768 46.105 710.727 17 32768 32.305 1014.332 17 65536 105.431 621.602 17 65536 73.914 886.654 17 131072 214.165 612.013 17 131072 151.439 865.509 17 262144 429.553 610.272 17 262144 301.681 868.944 17 524288 872.192 601.115 17 524288 634.740 825.989 17 1048576 2983.115 351.504 17 1048576 2098.572 499.662 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 605.918 72.629 906.589 830.415 27.369 1237.453 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 18 4 0.056 71.698 18 4 0.034 118.149 18 8 0.063 127.100 18 8 0.040 199.729 18 16 0.067 238.822 18 16 0.047 340.654 18 32 0.082 390.168 18 32 0.063 508.400 18 64 0.110 581.029 18 64 0.111 577.281 18 128 0.181 707.340 18 128 0.144 888.859 18 256 0.308 831.713 18 256 0.250 1024.563 18 512 0.599 854.890 18 512 0.480 1066.808 18 1024 1.192 859.165 18 1024 0.882 1161.116 18 2048 2.299 890.795 18 2048 1.747 1172.367 18 4096 4.519 906.398 18 4096 3.438 1191.392 18 8192 9.155 894.808 18 8192 6.778 1208.616 18 16384 18.099 905.252 18 16384 13.589 1205.668 18 32768 47.379 691.614 18 32768 27.353 1197.965 18 65536 105.731 619.838 18 65536 72.498 903.969 18 131072 218.130 600.890 18 131072 150.961 868.251 18 262144 429.748 609.995 18 262144 304.521 860.841 18 524288 880.177 595.662 18 524288 614.757 852.838 18 1048576 2983.982 351.402 18 1048576 2149.140 487.905 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 617.294 71.698 906.398 833.441 118.149 1208.616 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 19 4 0.158 25.343 19 4 0.035 114.912 19 8 0.058 138.084 19 8 0.040 199.729 19 16 0.071 225.198 19 16 0.047 340.654 19 32 0.087 367.720 19 32 0.062 516.222 19 64 0.125 512.281 19 64 0.096 666.093 19 128 0.175 731.432 19 128 0.163 786.048 19 256 0.319 802.498 19 256 0.253 1012.009 19 512 0.605 846.466 19 512 0.495 1034.433 19 1024 1.155 886.657 19 1024 0.950 1077.784 19 2048 2.280 898.153 19 2048 1.840 1113.118 19 4096 4.497 910.819 19 4096 3.717 1101.980 19 8192 8.987 911.544 19 8192 7.199 1137.928 19 16384 17.899 915.357 19 16384 14.535 1127.214 19 32768 48.165 680.327 19 32768 36.442 899.181 19 65536 107.405 610.177 19 65536 80.751 811.582 19 131072 217.590 602.380 19 131072 163.280 802.744 19 262144 436.260 600.889 19 262144 327.231 801.097 19 524288 942.113 556.502 19 524288 676.123 775.433 19 1048576 3077.270 340.749 19 1048576 2329.905 450.051 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 608.557 25.343 915.357 777.274 114.912 1137.928 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 20 4 0.056 71.392 20 4 0.138 28.976 20 8 0.062 129.056 20 8 0.041 195.084 20 16 0.069 231.410 20 16 0.080 200.325 20 32 0.082 391.305 20 32 0.066 484.541 20 64 0.120 532.610 20 64 0.101 633.102 20 128 0.168 762.601 20 128 0.155 825.955 20 256 0.312 820.904 20 256 0.256 999.760 20 512 0.590 867.670 20 512 0.493 1038.435 20 1024 1.125 910.144 20 1024 0.903 1134.134 20 2048 2.192 934.298 20 2048 1.823 1123.308 20 4096 4.338 944.208 20 4096 3.570 1147.313 20 8192 8.636 948.588 20 8192 6.871 1192.260 20 16384 18.544 883.522 20 16384 14.815 1105.917 20 32768 45.621 718.263 20 32768 35.594 920.605 20 65536 101.486 645.764 20 65536 77.707 843.373 20 131072 205.595 637.525 20 131072 158.403 827.458 20 262144 412.692 635.205 20 262144 318.696 822.552 20 524288 848.241 618.088 20 524288 652.265 803.796 20 1048576 3062.808 342.358 20 1048576 2409.467 435.190 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 632.890 71.392 948.588 776.952 28.976 1192.260 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 21 4 0.054 73.908 21 4 0.035 114.131 21 8 0.059 135.300 21 8 0.040 199.729 21 16 0.071 225.956 21 16 0.048 332.222 21 32 0.088 363.734 21 32 0.067 477.643 21 64 0.132 484.541 21 64 0.105 610.081 21 128 0.181 707.340 21 128 0.148 864.526 21 256 0.330 775.825 21 256 0.269 951.899 21 512 0.624 820.590 21 512 0.531 964.294 21 1024 1.171 874.561 21 1024 0.970 1055.793 21 2048 2.318 883.465 21 2048 1.928 1062.191 21 4096 4.524 905.395 21 4096 3.830 1069.464 21 8192 8.987 911.520 21 8192 7.483 1094.747 21 16384 18.127 903.835 21 16384 15.151 1081.396 21 32768 49.653 659.939 21 32768 38.290 855.784 21 65536 108.633 603.280 21 65536 83.646 783.492 21 131072 223.374 586.783 21 131072 169.929 771.335 21 262144 438.460 597.874 21 262144 343.835 762.412 21 524288 909.283 576.595 21 524288 710.671 737.737 21 1048576 3236.846 323.950 21 1048576 2513.017 417.258 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 600.757 73.908 911.520 747.691 114.131 1094.747 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 22 4 0.159 25.153 22 4 0.036 111.107 22 8 0.058 138.084 22 8 0.040 199.729 22 16 0.068 235.470 22 16 0.047 338.934 22 32 0.097 329.773 22 32 0.068 470.939 22 64 0.120 533.669 22 64 0.099 645.278 22 128 0.193 663.623 22 128 0.153 836.248 22 256 0.336 761.519 22 256 0.273 937.766 22 512 0.631 811.290 22 512 0.530 966.030 22 1024 1.184 864.875 22 1024 0.967 1058.917 22 2048 2.357 868.899 22 2048 1.893 1081.856 22 4096 4.615 887.573 22 4096 3.754 1091.132 22 8192 9.158 894.529 22 8192 7.439 1101.203 22 16384 18.324 894.121 22 16384 14.691 1115.250 22 32768 50.138 653.556 22 32768 35.047 934.972 22 65536 110.211 594.642 22 65536 85.270 768.571 22 131072 223.331 586.896 22 131072 173.466 755.606 22 262144 446.191 587.515 22 262144 352.033 744.658 22 524288 927.139 565.490 22 524288 721.586 726.577 22 1048576 3250.633 322.576 22 1048576 2529.790 414.491 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 590.487 25.153 894.529 752.593 111.107 1115.250 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 23 4 0.192 20.815 23 4 0.035 114.912 23 8 0.089 89.958 23 8 0.041 195.084 23 16 0.101 158.276 23 16 0.047 338.934 23 32 0.154 207.767 23 32 0.066 484.541 23 64 0.167 383.479 23 64 0.104 615.678 23 128 0.225 568.719 23 128 0.155 825.955 23 256 0.380 673.615 23 256 0.274 933.689 23 512 0.670 764.229 23 512 0.526 973.033 23 1024 1.239 826.432 23 1024 1.001 1022.855 23 2048 2.422 845.549 23 2048 1.958 1045.895 23 4096 4.766 859.423 23 4096 3.850 1063.835 23 8192 9.504 861.946 23 8192 7.736 1058.950 23 16384 21.405 765.421 23 16384 17.050 960.937 23 32768 51.408 637.410 23 32768 40.478 809.526 23 65536 112.737 581.318 23 65536 87.810 746.338 23 131072 227.487 576.174 23 131072 177.260 739.434 23 262144 456.409 574.362 23 262144 356.779 734.752 23 524288 950.580 551.545 23 524288 780.132 672.051 23 1048576 3284.880 319.213 23 1048576 2723.954 384.946 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 540.297 20.815 861.946 722.176 114.912 1063.835 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 24 4 0.056 71.392 24 4 0.128 31.242 24 8 0.062 129.056 24 8 0.036 222.215 24 16 0.060 266.305 24 16 0.045 355.073 24 32 0.084 381.300 24 32 0.061 524.288 24 64 0.118 542.294 24 64 0.095 674.461 24 128 0.207 618.515 24 128 0.145 883.011 24 256 0.341 750.868 24 256 0.253 1012.009 24 512 0.619 827.228 24 512 0.511 1002.092 24 1024 1.161 881.923 24 1024 0.900 1137.740 24 2048 2.240 914.309 24 2048 1.770 1157.049 24 4096 4.377 935.825 24 4096 3.446 1188.671 24 8192 8.676 944.234 24 8192 6.880 1190.690 24 16384 17.539 934.145 24 16384 13.573 1207.087 24 32768 46.781 700.454 24 32768 36.396 900.318 24 65536 101.059 648.493 24 65536 81.000 809.086 24 131072 202.667 646.736 24 131072 162.394 807.123 24 262144 404.562 647.970 24 262144 326.145 803.765 24 524288 862.784 607.670 24 524288 705.526 743.116 24 1048576 3251.637 322.476 24 1048576 2655.927 394.806 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 619.537 71.392 944.234 791.781 31.242 1207.087 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 25 4 0.054 74.235 25 4 0.036 111.107 25 8 0.059 135.848 25 8 0.036 222.215 25 16 0.072 222.215 25 16 0.047 340.654 25 32 0.100 319.566 25 32 0.064 500.812 25 64 0.137 467.658 25 64 0.101 633.102 25 128 0.190 673.615 25 128 0.160 800.106 25 256 0.373 686.536 25 256 0.279 916.944 25 512 0.657 779.203 25 512 0.555 922.459 25 1024 1.272 805.055 25 1024 1.003 1020.910 25 2048 2.495 820.825 25 2048 2.005 1021.517 25 4096 4.988 821.178 25 4096 3.951 1036.743 25 8192 9.969 821.748 25 8192 7.884 1039.063 25 16384 23.022 711.669 25 16384 16.516 992.010 25 32768 53.762 609.502 25 32768 41.987 780.433 25 65536 117.404 558.209 25 65536 90.052 727.758 25 131072 237.458 551.980 25 131072 182.939 716.479 25 262144 477.392 549.117 25 262144 368.021 712.307 25 524288 1012.060 518.040 25 524288 799.577 655.707 25 1048576 3459.970 303.059 25 1048576 2934.240 357.359 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 548.908 74.235 821.748 710.931 111.107 1039.063 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 26 4 0.160 25.003 26 4 0.036 111.107 26 8 0.060 133.153 26 8 0.037 216.480 26 16 0.072 222.215 26 16 0.047 340.654 26 32 0.098 326.564 26 32 0.064 498.951 26 64 0.134 477.643 26 64 0.094 681.308 26 128 0.207 617.803 26 128 0.161 795.364 26 256 0.360 711.087 26 256 0.278 920.876 26 512 0.686 746.432 26 512 0.563 909.565 26 1024 1.322 774.566 26 1024 1.043 981.707 26 2048 2.581 793.454 26 2048 2.027 1010.343 26 4096 5.098 803.436 26 4096 3.989 1026.829 26 8192 10.230 800.796 26 8192 7.963 1028.765 26 16384 23.330 702.273 26 16384 18.314 894.622 26 32768 53.304 614.739 26 32768 42.856 764.607 26 65536 114.463 572.551 26 65536 92.331 709.795 26 131072 230.393 568.906 26 131072 186.743 701.884 26 262144 461.542 567.974 26 262144 376.889 695.547 26 524288 1007.245 520.517 26 524288 829.947 631.713 26 1048576 3481.427 301.191 26 1048576 3033.762 345.636 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 541.069 25.003 803.436 698.198 111.107 1028.765 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 27 4 0.159 25.153 27 4 0.036 111.848 27 8 0.059 135.848 27 8 0.037 216.480 27 16 0.071 225.198 27 16 0.047 338.934 27 32 0.100 320.329 27 32 0.065 491.640 27 64 0.156 410.452 27 64 0.102 627.186 27 128 0.208 614.972 27 128 0.164 780.336 27 256 0.369 694.080 27 256 0.295 868.021 27 512 0.706 725.011 27 512 0.568 901.168 27 1024 1.326 772.198 27 1024 1.057 968.862 27 2048 2.645 774.287 27 2048 2.126 963.213 27 4096 5.166 792.905 27 4096 4.167 982.999 27 8192 10.346 791.809 27 8192 8.176 1001.975 27 16384 20.629 794.215 27 16384 16.653 983.857 27 32768 56.335 581.664 27 32768 44.685 733.313 27 65536 120.923 541.965 27 65536 95.783 684.213 27 131072 243.192 538.965 27 131072 193.719 676.608 27 262144 486.697 538.619 27 262144 389.179 673.582 27 524288 1069.216 490.348 27 524288 857.419 611.472 27 1048576 3561.384 294.429 27 1048576 3119.896 336.093 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 529.602 25.153 794.215 681.674 111.848 1001.975 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 28 4 0.053 75.573 28 4 0.145 27.594 28 8 0.059 135.848 28 8 0.037 215.093 28 16 0.077 207.767 28 16 0.047 340.654 28 32 0.087 367.720 28 32 0.067 477.643 28 64 0.129 496.184 28 64 0.096 667.750 28 128 0.205 624.269 28 128 0.157 814.675 28 256 0.362 707.340 28 256 0.303 844.801 28 512 0.705 726.237 28 512 0.547 935.723 28 1024 1.597 641.136 28 1024 1.020 1003.966 28 2048 2.585 792.283 28 2048 2.046 1000.925 28 4096 5.151 795.180 28 4096 4.001 1023.769 28 8192 10.171 805.432 28 8192 7.983 1026.185 28 16384 23.019 711.758 28 16384 17.243 950.188 28 32768 54.450 601.799 28 32768 44.148 742.231 28 65536 116.339 563.319 28 65536 94.948 690.230 28 131072 234.634 558.623 28 131072 190.983 686.302 28 262144 470.182 557.537 28 262144 382.111 686.041 28 524288 1062.049 493.657 28 524288 889.891 589.160 28 1048576 3553.320 295.098 28 1048576 3200.242 327.655 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 534.566 75.573 805.432 686.873 27.594 1026.185 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 29 4 0.054 74.235 29 4 0.036 111.107 29 8 0.058 138.084 29 8 0.037 216.480 29 16 0.072 222.215 29 16 0.047 340.654 29 32 0.102 313.593 29 32 0.064 500.812 29 64 0.153 418.124 29 64 0.105 608.697 29 128 0.224 571.748 29 128 0.160 798.915 29 256 0.400 640.275 29 256 0.306 836.899 29 512 0.762 671.929 29 512 0.614 833.650 29 1024 1.426 717.982 29 1024 1.092 937.766 29 2048 2.808 729.382 29 2048 2.191 934.705 29 4096 5.386 760.474 29 4096 4.172 981.763 29 8192 10.833 756.206 29 8192 8.362 979.664 29 16384 21.567 759.675 29 16384 16.909 968.958 29 32768 58.603 559.152 29 32768 46.618 702.905 29 65536 122.956 533.004 29 65536 99.481 658.778 29 131072 247.749 529.052 29 131072 201.930 649.096 29 262144 497.422 527.005 29 262144 402.581 651.158 29 524288 1129.756 464.072 29 524288 971.166 539.854 29 1048576 3616.713 289.925 29 1048576 3298.861 317.860 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 509.270 74.235 760.474 661.564 111.107 981.763 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 30 4 0.160 25.003 30 4 0.036 111.107 30 8 0.066 121.135 30 8 0.036 222.215 30 16 0.074 215.784 30 16 0.047 340.654 30 32 0.098 326.564 30 32 0.066 484.541 30 64 0.145 441.506 30 64 0.099 645.278 30 128 0.248 516.222 30 128 0.156 820.904 30 256 0.416 615.678 30 256 0.306 836.899 30 512 0.773 662.190 30 512 0.586 873.671 30 1024 1.424 719.064 30 1024 1.072 955.286 30 2048 2.764 740.959 30 2048 2.118 966.899 30 4096 5.531 740.575 30 4096 4.152 986.498 30 8192 10.864 754.049 30 8192 8.237 994.522 30 16384 24.694 663.482 30 16384 17.760 922.521 30 32768 58.183 563.189 30 32768 47.206 694.150 30 65536 122.097 536.755 30 65536 101.673 644.577 30 131072 247.604 529.361 30 131072 203.046 645.528 30 262144 496.980 527.474 30 262144 407.490 643.314 30 524288 1180.110 444.270 30 524288 1023.744 512.128 30 1048576 3698.279 283.531 30 1048576 3420.404 306.565 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 496.147 25.003 754.049 663.540 111.107 994.522 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 31 4 0.051 78.398 31 4 0.036 111.107 31 8 0.058 137.518 31 8 0.038 211.034 31 16 0.074 215.784 31 16 0.048 333.875 31 32 0.102 313.593 31 32 0.067 477.643 31 64 0.156 409.825 31 64 0.103 621.378 31 128 0.250 511.793 31 128 0.187 684.784 31 256 0.457 560.116 31 256 0.319 802.498 31 512 0.824 621.378 31 512 0.634 807.325 31 1024 1.534 667.542 31 1024 1.152 888.859 31 2048 2.943 695.879 31 2048 2.228 919.201 31 4096 5.762 710.881 31 4096 4.341 943.534 31 8192 11.445 715.768 31 8192 8.550 958.137 31 16384 22.807 718.372 31 16384 17.062 960.252 31 32768 60.325 543.190 31 32768 48.959 669.294 31 65536 126.546 517.883 31 65536 103.494 633.235 31 131072 254.963 514.083 31 131072 208.811 627.706 31 262144 510.981 513.021 31 262144 419.717 624.573 31 524288 1234.107 424.832 31 524288 1030.343 508.848 31 1048576 3750.556 279.579 31 1048576 3511.453 298.616 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 481.549 78.398 718.372 635.890 111.107 960.252 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 32 4 0.031 129.056 32 4 0.033 120.699 32 8 0.030 266.305 32 8 0.033 243.148 32 16 0.037 430.185 32 16 0.037 432.960 32 32 0.047 681.308 32 32 0.047 677.867 32 64 0.067 955.286 32 64 0.065 986.895 32 128 0.104 1231.355 32 128 0.091 1409.110 32 256 0.158 1621.967 32 256 0.155 1651.910 32 512 0.303 1689.602 32 512 0.305 1679.033 32 1024 0.543 1886.239 32 1024 0.539 1899.587 32 2048 1.071 1912.274 32 2048 1.084 1889.143 32 4096 2.126 1926.642 32 4096 2.098 1952.480 32 8192 4.751 1724.281 32 8192 4.168 1965.435 32 16384 10.444 1568.723 32 16384 8.272 1980.617 32 32768 25.698 1275.121 32 32768 16.673 1965.323 32 65536 72.330 906.066 32 65536 66.832 980.607 32 131072 170.633 768.152 32 131072 152.771 857.964 32 262144 340.665 769.506 32 262144 315.431 831.066 32 524288 817.945 640.982 32 524288 800.459 654.984 32 1048576 3208.776 326.784 32 1048576 3303.863 317.379 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1089.991 129.056 1926.642 1184.011 120.699 1980.617 stats by bits per item pack: unpack: bits avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1 868.438 21.157 1444.293 2177.951 114.912 3148.010 2 945.330 88.768 1491.761 1810.052 27.060 2489.870 3 853.702 72.944 1372.852 1546.288 108.240 2176.837 4 913.145 25.003 1398.927 1533.323 134.218 2041.168 5 780.190 71.392 1192.094 1302.986 111.107 1816.438 6 758.478 26.673 1210.233 1258.300 111.107 1736.524 7 738.283 72.944 1168.460 1118.505 114.912 1551.808 8 877.027 26.504 1377.503 1241.764 129.056 1717.386 9 732.452 72.629 1115.757 1031.866 26.844 1429.638 10 717.442 72.944 1110.313 991.239 111.107 1363.286 11 673.881 24.528 1037.087 910.591 59.705 1301.086 12 695.336 72.629 1046.500 897.275 111.107 1230.727 13 651.151 25.459 995.357 962.956 111.107 1362.508 14 656.707 71.392 981.791 878.684 28.388 1261.660 15 618.432 72.629 925.540 856.489 111.107 1225.798 16 859.114 27.016 1371.263 803.125 129.056 1099.160 17 605.918 72.629 906.589 830.415 27.369 1237.453 18 617.294 71.698 906.398 833.441 118.149 1208.616 19 608.557 25.343 915.357 777.274 114.912 1137.928 20 632.890 71.392 948.588 776.952 28.976 1192.260 21 600.757 73.908 911.520 747.691 114.131 1094.747 22 590.487 25.153 894.529 752.593 111.107 1115.250 23 540.297 20.815 861.946 722.176 114.912 1063.835 24 619.537 71.392 944.234 791.781 31.242 1207.087 25 548.908 74.235 821.748 710.931 111.107 1039.063 26 541.069 25.003 803.436 698.198 111.107 1028.765 27 529.602 25.153 794.215 681.674 111.848 1001.975 28 534.566 75.573 805.432 686.873 27.594 1026.185 29 509.270 74.235 760.474 661.564 111.107 981.763 30 496.147 25.003 754.049 663.540 111.107 994.522 31 481.549 78.398 718.372 635.890 111.107 960.252 32 1089.991 129.056 1926.642 1184.011 120.699 1980.617 stats by size pack: unpack: size(B) avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4 55.738 20.815 129.056 94.235 26.844 134.218 8 143.589 89.958 266.305 213.895 119.411 258.111 16 249.676 158.276 430.185 352.942 200.325 444.430 32 393.891 207.767 681.308 539.055 367.720 741.534 64 575.411 383.479 955.286 719.157 543.392 986.895 128 777.953 511.793 1231.355 1015.693 684.784 1726.273 256 878.929 560.116 1621.967 1162.465 802.498 2227.680 512 944.434 621.378 1689.602 1211.908 807.325 2459.890 1024 1013.207 641.136 1886.239 1333.921 888.859 2805.335 2048 1029.688 695.879 1912.274 1351.617 919.201 2828.428 4096 1050.642 710.881 1926.642 1380.081 943.534 2994.052 8192 1049.442 715.768 1724.281 1388.262 958.137 2795.065 16384 1022.281 663.482 1568.723 1383.247 894.622 2953.644 32768 807.707 543.190 1275.121 1288.550 669.294 3148.010 65536 680.653 517.883 906.066 1179.803 633.235 2895.463 131072 658.003 514.083 834.938 1136.793 627.706 2970.674 262144 656.669 513.021 831.053 1109.503 624.573 3118.129 524288 628.871 424.832 831.518 1055.367 508.848 3099.145 1048576 377.998 279.579 548.145 772.615 298.616 3019.224 real 4m10.590s user 4m10.535s sys 0m0.000s ================================================ FILE: benchmark/PackedArraySelfBench-unrolled-iphone5-a6-1.3GHz.txt ================================================ -- PackedArray self bench ------------------------------------------------------ memcpy: bits size (B) time (µs) speed (B/µs) 32 4 0.057 70.198 32 8 0.047 170.327 32 16 0.087 183.860 32 32 0.145 220.753 32 64 0.028 2274.877 32 128 0.036 3555.437 32 256 0.050 5113.056 32 512 0.091 5621.685 32 1024 0.148 6927.367 32 2048 0.264 7752.649 32 4096 0.496 8259.552 32 8192 0.970 8446.347 32 16384 1.903 8609.306 32 32768 4.291 7636.346 32 65536 11.133 5886.667 32 131072 22.103 5930.100 32 262144 44.202 5930.579 32 524288 87.265 6007.998 32 1048576 396.203 2646.562 avg (B/µs) min (B/µs) max (B/µs) 4802.298 70.198 8609.306 loopcpy: bits size (B) time (µs) speed (B/µs) 32 4 0.025 159.783 32 8 0.031 258.111 32 16 0.067 238.822 32 32 0.117 273.356 32 64 0.015 4260.880 32 128 0.022 5835.553 32 256 0.035 7354.396 32 512 0.068 7535.030 32 1024 0.118 8676.702 32 2048 0.216 9481.164 32 4096 0.414 9896.238 32 8192 0.811 10102.834 32 16384 1.602 10227.635 32 32768 3.494 9378.298 32 65536 9.240 7092.708 32 131072 18.318 7155.391 32 262144 37.295 7028.957 32 524288 83.585 6272.511 32 1048576 390.023 2688.498 avg (B/µs) min (B/µs) max (B/µs) 5995.625 159.783 10227.635 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 1 4 0.082 48.913 1 4 0.032 125.203 1 8 0.059 135.848 1 8 0.024 332.222 1 16 0.063 253.241 1 16 0.029 550.073 1 32 0.073 438.620 1 32 0.033 972.592 1 64 0.100 640.657 1 64 0.047 1362.617 1 128 0.071 1801.580 1 128 0.050 2556.528 1 256 0.116 2209.345 1 256 0.080 3195.660 1 512 0.206 2485.513 1 512 0.137 3734.754 1 1024 0.385 2659.422 1 1024 0.252 4063.356 1 2048 0.751 2726.963 1 2048 0.490 4180.017 1 4096 1.467 2792.113 1 4096 0.946 4329.604 1 8192 2.906 2819.145 1 8192 1.860 4404.530 1 16384 5.763 2842.937 1 16384 3.706 4420.965 1 32768 11.596 2825.811 1 32768 7.347 4460.132 1 65536 23.229 2821.315 1 65536 14.655 4471.886 1 131072 46.404 2824.577 1 131072 29.280 4476.511 1 262144 92.711 2827.533 1 262144 58.537 4478.261 1 524288 185.636 2824.279 1 524288 117.162 4474.898 1 1048576 388.967 2695.797 1 1048576 238.759 4391.775 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2035.453 48.913 2842.937 3209.557 125.203 4478.261 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 2 4 0.029 137.518 2 4 0.021 190.650 2 8 0.031 258.111 2 8 0.019 419.430 2 16 0.034 472.598 2 16 0.023 691.844 2 32 0.042 758.292 2 32 0.029 1100.145 2 64 0.055 1167.111 2 64 0.041 1560.671 2 128 0.066 1938.162 2 128 0.048 2671.000 2 256 0.109 2349.544 2 256 0.080 3195.660 2 512 0.195 2625.286 2 512 0.145 3532.045 2 1024 0.368 2781.715 2 1024 0.294 3483.347 2 2048 0.724 2829.359 2 2048 0.546 3751.063 2 4096 1.416 2892.721 2 4096 1.070 3827.957 2 8192 2.799 2926.724 2 8192 2.102 3897.429 2 16384 5.569 2942.010 2 16384 4.176 3923.464 2 32768 11.279 2905.256 2 32768 8.329 3934.246 2 65536 23.107 2836.190 2 65536 16.643 3937.740 2 131072 46.100 2843.202 2 131072 34.276 3824.016 2 262144 92.069 2847.259 2 262144 66.471 3943.743 2 524288 184.275 2845.140 2 524288 133.385 3930.632 2 1048576 393.751 2663.044 2 1048576 283.144 3703.331 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2158.907 137.518 2942.010 2922.022 190.650 3943.743 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 3 4 0.031 129.056 3 4 0.047 85.164 3 8 0.032 250.406 3 8 0.021 381.300 3 16 0.035 459.650 3 16 0.024 664.444 3 32 0.042 762.601 3 32 0.030 1073.742 3 64 0.062 1032.444 3 64 0.047 1362.617 3 128 0.068 1877.171 3 128 0.053 2407.493 3 256 0.114 2246.322 3 256 0.090 2840.587 3 512 0.208 2462.711 3 512 0.167 3067.834 3 1024 0.397 2579.560 3 1024 0.317 3229.299 3 2048 0.793 2582.662 3 2048 0.634 3230.513 3 4096 1.529 2678.913 3 4096 1.239 3305.728 3 8192 3.023 2709.759 3 8192 2.449 3345.316 3 16384 6.015 2723.829 3 16384 4.873 3362.174 3 32768 12.220 2681.474 3 32768 9.713 3373.646 3 65536 24.412 2684.591 3 65536 19.498 3361.187 3 131072 48.839 2683.765 3 131072 38.762 3381.469 3 262144 97.417 2690.944 3 262144 77.519 3381.666 3 524288 195.031 2688.230 3 524288 156.425 3351.689 3 1048576 431.856 2428.068 3 1048576 319.024 3286.824 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2018.534 129.056 2723.829 2552.247 85.164 3381.666 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 4 4 0.030 133.153 4 4 0.019 209.715 4 8 0.031 258.111 4 8 0.020 399.458 4 16 0.033 486.296 4 16 0.023 699.051 4 32 0.038 838.861 4 32 0.030 1065.220 4 64 0.057 1123.161 4 64 0.043 1483.069 4 128 0.067 1910.573 4 128 0.055 2324.117 4 256 0.108 2370.291 4 256 0.093 2753.184 4 512 0.195 2625.286 4 512 0.174 2941.758 4 1024 0.368 2781.715 4 1024 0.334 3067.834 4 2048 0.726 2820.997 4 2048 0.669 3061.274 4 4096 1.423 2878.182 4 4096 1.311 3124.181 4 8192 2.800 2925.727 4 8192 2.596 3155.454 4 16384 5.570 2941.381 4 16384 5.164 3172.644 4 32768 11.298 2900.290 4 32768 10.304 3180.132 4 65536 22.583 2902.005 4 65536 20.579 3184.590 4 131072 45.074 2907.930 4 131072 41.130 3186.787 4 262144 90.076 2910.255 4 262144 82.818 3165.301 4 524288 181.545 2887.927 4 524288 165.854 3161.142 4 1048576 412.005 2545.057 4 1048576 336.865 3112.747 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2165.642 133.153 2941.381 2444.614 209.715 3186.787 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 5 4 0.032 125.203 5 4 0.050 79.892 5 8 0.034 234.646 5 8 0.023 349.525 5 16 0.036 444.430 5 16 0.026 615.678 5 32 0.044 729.444 5 32 0.032 1001.625 5 64 0.063 1016.801 5 64 0.047 1362.617 5 128 0.068 1883.758 5 128 0.059 2173.566 5 256 0.114 2246.322 5 256 0.097 2638.186 5 512 0.207 2474.060 5 512 0.173 2962.046 5 1024 0.392 2612.511 5 1024 0.324 3160.388 5 2048 0.775 2643.057 5 2048 0.639 3205.199 5 4096 1.516 2701.662 5 4096 1.255 3263.653 5 8192 2.997 2733.472 5 8192 2.456 3335.573 5 16384 5.966 2746.253 5 16384 4.874 3361.516 5 32768 12.135 2700.335 5 32768 9.720 3371.246 5 65536 24.795 2643.108 5 65536 19.403 3377.625 5 131072 49.506 2647.601 5 131072 38.770 3380.762 5 262144 98.927 2649.873 5 262144 78.925 3321.436 5 524288 198.244 2644.659 5 524288 158.215 3313.768 5 1048576 456.509 2296.945 5 1048576 328.249 3194.453 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2009.165 125.203 2746.253 2498.356 79.892 3380.762 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 6 4 0.030 134.218 6 4 0.020 199.729 6 8 0.032 250.406 6 8 0.021 381.300 6 16 0.034 472.598 6 16 0.024 664.444 6 32 0.044 729.444 6 32 0.030 1065.220 6 64 0.058 1104.673 6 64 0.047 1362.617 6 128 0.071 1801.580 6 128 0.065 1966.560 6 256 0.119 2147.484 6 256 0.106 2412.903 6 512 0.214 2394.073 6 512 0.185 2767.376 6 1024 0.406 2522.001 6 1024 0.353 2900.045 6 2048 0.801 2556.528 6 2048 0.665 3078.830 6 4096 1.566 2615.693 6 4096 1.295 3162.715 6 8192 3.097 2645.295 6 8192 2.536 3230.209 6 16384 6.164 2657.982 6 16384 5.029 3257.928 6 32768 12.597 2601.286 6 32768 10.021 3269.865 6 65536 25.450 2575.089 6 65536 20.000 3276.803 6 131072 50.792 2580.565 6 131072 39.961 3280.009 6 262144 101.525 2582.062 6 262144 81.922 3199.920 6 524288 204.183 2567.735 6 524288 164.892 3179.585 6 1048576 469.830 2231.820 6 1048576 340.018 3083.883 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1956.344 134.218 2657.982 2407.365 199.729 3280.009 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 7 4 0.058 68.759 7 4 0.020 199.729 7 8 0.031 258.111 7 8 0.021 381.300 7 16 0.035 456.523 7 16 0.024 671.089 7 32 0.044 725.501 7 32 0.032 1001.625 7 64 0.062 1032.444 7 64 0.048 1335.500 7 128 0.071 1801.580 7 128 0.059 2164.802 7 256 0.118 2173.566 7 256 0.102 2508.743 7 512 0.216 2370.291 7 512 0.194 2641.431 7 1024 0.411 2491.280 7 1024 0.350 2925.727 7 2048 0.820 2497.074 7 2048 0.694 2950.854 7 4096 1.597 2564.925 7 4096 1.353 3027.290 7 8192 3.177 2578.592 7 8192 2.678 3059.094 7 16384 6.291 2604.293 7 16384 5.322 3078.554 7 32768 12.862 2547.666 7 32768 10.605 3089.905 7 65536 26.646 2459.515 7 65536 21.178 3094.531 7 131072 53.206 2463.483 7 131072 42.323 3096.954 7 262144 106.299 2466.102 7 262144 85.866 3052.935 7 524288 213.235 2458.734 7 524288 172.182 3044.967 7 1048576 491.291 2134.328 7 1048576 361.177 2903.219 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1902.777 68.759 2604.293 2327.802 199.729 3096.954 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 8 4 0.030 133.153 8 4 0.019 212.370 8 8 0.031 258.111 8 8 0.020 399.458 8 16 0.030 536.871 8 16 0.023 691.844 8 32 0.039 818.401 8 32 0.030 1073.742 8 64 0.056 1142.279 8 64 0.046 1390.857 8 128 0.066 1945.184 8 128 0.054 2375.535 8 256 0.111 2304.167 8 256 0.094 2725.233 8 512 0.202 2535.400 8 512 0.171 2995.096 8 1024 0.384 2667.682 8 1024 0.321 3190.912 8 2048 0.772 2652.852 8 2048 0.634 3230.513 8 4096 1.489 2750.980 8 4096 1.238 3308.912 8 8192 2.946 2780.814 8 8192 2.448 3346.293 8 16384 5.890 2781.715 8 16384 4.868 3365.632 8 32768 11.945 2743.238 8 32768 9.712 3373.977 8 65536 25.194 2601.262 8 65536 19.396 3378.829 8 131072 50.311 2605.231 8 131072 38.990 3361.681 8 262144 100.534 2607.517 8 262144 80.940 3238.744 8 524288 202.071 2594.574 8 524288 160.722 3262.080 8 1048576 460.975 2274.692 8 1048576 347.560 3016.963 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 2038.638 133.153 2781.715 2523.088 212.370 3378.829 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 9 4 0.053 75.573 9 4 0.023 172.961 9 8 0.032 248.551 9 8 0.027 294.337 9 16 0.036 444.430 9 16 0.042 381.300 9 32 0.045 710.147 9 32 0.037 865.921 9 64 0.063 1016.801 9 64 0.054 1187.768 9 128 0.071 1801.580 9 128 0.064 1995.803 9 256 0.124 2064.888 9 256 0.113 2265.278 9 512 0.227 2255.760 9 512 0.205 2497.074 9 1024 0.433 2363.768 9 1024 0.390 2625.286 9 2048 0.862 2375.535 9 2048 0.773 2648.762 9 4096 1.694 2417.997 9 4096 1.513 2707.197 9 8192 3.343 2450.591 9 8192 2.995 2735.212 9 16384 6.677 2453.829 9 16384 5.963 2747.570 9 32768 13.508 2425.807 9 32768 11.889 2756.166 9 65536 27.114 2417.062 9 65536 23.745 2759.985 9 131072 54.104 2422.600 9 131072 48.195 2719.625 9 262144 108.108 2424.833 9 262144 96.346 2720.856 9 524288 217.261 2413.173 9 524288 193.261 2712.851 9 1048576 511.129 2051.489 9 1048576 399.238 2626.443 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1833.390 75.573 2453.829 2074.758 172.961 2759.985 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 10 4 0.030 133.153 10 4 0.048 83.469 10 8 0.031 258.111 10 8 0.023 349.525 10 16 0.035 456.523 10 16 0.028 573.580 10 32 0.044 725.501 10 32 0.036 888.859 10 64 0.059 1082.401 10 64 0.054 1182.535 10 128 0.076 1688.273 10 128 0.066 1938.162 10 256 0.131 1955.814 10 256 0.117 2186.847 10 512 0.237 2160.446 10 512 0.212 2412.903 10 1024 0.448 2285.773 10 1024 0.414 2472.635 10 2048 0.886 2311.608 10 2048 0.800 2559.575 10 4096 1.730 2367.678 10 4096 1.565 2617.287 10 8192 3.421 2394.574 10 8192 3.101 2641.837 10 16384 6.821 2401.939 10 16384 6.163 2658.497 10 32768 13.790 2376.233 10 32768 12.291 2666.026 10 65536 28.165 2326.851 10 65536 24.570 2667.319 10 131072 55.958 2342.327 10 131072 49.843 2629.693 10 262144 111.845 2343.815 10 262144 99.553 2633.208 10 524288 225.688 2323.066 10 524288 199.951 2622.083 10 1048576 524.955 1997.459 10 1048576 414.740 2528.273 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1785.871 133.153 2401.939 2016.438 83.469 2667.319 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 11 4 0.032 125.203 11 4 0.022 182.361 11 8 0.033 241.399 11 8 0.023 345.922 11 16 0.039 411.711 11 16 0.027 593.884 11 32 0.048 667.750 11 32 0.037 865.921 11 64 0.067 955.286 11 64 0.055 1162.058 11 128 0.076 1682.981 11 128 0.067 1910.573 11 256 0.129 1981.073 11 256 0.118 2169.175 11 512 0.237 2160.446 11 512 0.234 2189.076 11 1024 0.451 2270.067 11 1024 0.427 2398.083 11 2048 0.893 2293.095 11 2048 0.844 2426.535 11 4096 1.751 2339.307 11 4096 1.659 2469.082 11 8192 3.468 2362.143 11 8192 3.294 2486.953 11 16384 6.928 2364.907 11 16384 6.555 2499.435 11 32768 14.003 2340.064 11 32768 13.072 2506.729 11 65536 28.776 2277.440 11 65536 26.113 2509.705 11 131072 57.505 2279.310 11 131072 52.699 2487.178 11 262144 114.913 2281.239 11 262144 105.290 2489.729 11 524288 231.006 2269.587 11 524288 211.298 2481.273 11 1048576 537.012 1952.612 11 1048576 440.234 2381.861 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1750.296 125.203 2364.907 1923.975 182.361 2509.705 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 12 4 0.050 79.892 12 4 0.022 180.400 12 8 0.031 258.111 12 8 0.024 332.222 12 16 0.036 444.430 12 16 0.027 593.884 12 32 0.042 762.601 12 32 0.037 860.370 12 64 0.059 1082.401 12 64 0.055 1167.111 12 128 0.075 1704.352 12 128 0.072 1777.718 12 256 0.127 2014.525 12 256 0.123 2084.936 12 512 0.231 2216.185 12 512 0.226 2265.278 12 1024 0.437 2343.135 12 1024 0.429 2387.419 12 2048 0.863 2372.910 12 2048 0.848 2414.938 12 4096 1.689 2425.165 12 4096 1.664 2461.652 12 8192 3.354 2442.404 12 8192 3.294 2486.953 12 16384 6.821 2401.939 12 16384 6.559 2497.891 12 32768 14.056 2331.252 12 32768 13.134 2494.898 12 65536 28.577 2293.306 12 65536 26.118 2509.224 12 131072 57.135 2294.071 12 131072 53.061 2470.213 12 262144 114.286 2293.751 12 262144 105.670 2480.780 12 524288 229.477 2284.709 12 524288 212.054 2472.427 12 1048576 534.288 1962.567 12 1048576 443.011 2366.930 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1789.879 79.892 2442.404 1910.802 180.400 2509.224 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 13 4 0.031 129.056 13 4 0.022 182.361 13 8 0.032 250.406 13 8 0.023 349.525 13 16 0.038 422.068 13 16 0.028 573.580 13 32 0.048 667.750 13 32 0.037 865.921 13 64 0.066 969.081 13 64 0.056 1147.160 13 128 0.077 1662.139 13 128 0.075 1704.352 13 256 0.132 1938.162 13 256 0.130 1970.168 13 512 0.246 2080.895 13 512 0.241 2124.118 13 1024 0.471 2173.566 13 1024 0.464 2207.075 13 2048 0.934 2192.428 13 2048 0.921 2223.643 13 4096 1.846 2219.048 13 4096 1.810 2262.891 13 8192 3.638 2251.769 13 8192 3.588 2283.191 13 16384 7.277 2251.474 13 16384 7.148 2292.101 13 32768 14.707 2228.077 13 32768 14.263 2297.427 13 65536 30.110 2176.561 13 65536 28.490 2300.330 13 131072 60.071 2181.952 13 131072 57.244 2289.705 13 262144 120.120 2182.350 13 262144 114.812 2283.248 13 524288 242.105 2165.540 13 524288 229.435 2285.127 13 1048576 559.674 1873.548 13 1048576 478.066 2193.371 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1685.046 129.056 2251.769 1780.805 182.361 2300.330 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 14 4 0.057 70.198 14 4 0.022 180.400 14 8 0.031 258.111 14 8 0.023 345.922 14 16 0.036 444.430 14 16 0.028 573.580 14 32 0.045 713.924 14 32 0.037 865.921 14 64 0.060 1065.220 14 64 0.055 1167.111 14 128 0.079 1621.967 14 128 0.076 1682.981 14 256 0.136 1883.758 14 256 0.133 1924.269 14 512 0.251 2041.334 14 512 0.247 2072.861 14 1024 0.480 2133.615 14 1024 0.476 2150.710 14 2048 0.949 2158.275 14 2048 0.946 2164.802 14 4096 1.873 2186.847 14 4096 1.859 2203.395 14 8192 3.689 2220.626 14 8192 3.687 2221.774 14 16384 7.378 2220.697 14 16384 7.346 2230.355 14 32768 14.731 2224.399 14 32768 14.659 2235.361 14 65536 30.813 2126.896 14 65536 29.320 2235.198 14 131072 61.520 2130.556 14 131072 58.847 2227.337 14 262144 123.083 2129.817 14 262144 117.612 2228.890 14 524288 248.134 2112.922 14 524288 236.624 2215.701 14 1048576 566.112 1852.241 14 1048576 494.018 2122.546 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1662.938 70.198 2224.399 1739.427 180.400 2235.361 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 15 4 0.031 129.056 15 4 0.045 89.241 15 8 0.032 250.406 15 8 0.022 360.800 15 16 0.036 444.430 15 16 0.027 593.884 15 32 0.045 710.147 15 32 0.036 888.859 15 64 0.064 997.901 15 64 0.054 1187.768 15 128 0.082 1560.671 15 128 0.080 1597.830 15 256 0.141 1816.822 15 256 0.141 1816.822 15 512 0.259 1977.425 15 512 0.262 1954.034 15 1024 0.497 2060.925 15 1024 0.502 2039.396 15 2048 0.985 2079.384 15 2048 0.997 2054.517 15 4096 1.936 2115.747 15 4096 1.960 2089.754 15 8192 3.847 2129.516 15 8192 3.885 2108.606 15 16384 7.660 2138.928 15 16384 7.742 2116.204 15 32768 15.450 2120.906 15 32768 15.451 2120.775 15 65536 32.001 2047.950 15 65536 30.930 2118.862 15 131072 63.858 2052.553 15 131072 62.060 2112.017 15 262144 127.679 2053.151 15 262144 124.021 2113.706 15 524288 256.531 2043.761 15 524288 248.901 2106.411 15 1048576 583.329 1797.572 15 1048576 518.010 2024.239 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1606.697 129.056 2138.928 1657.564 89.241 2120.775 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 16 4 0.030 133.153 16 4 0.019 212.370 16 8 0.026 307.839 16 8 0.020 399.458 16 16 0.031 516.222 16 16 0.024 671.089 16 32 0.041 780.336 16 32 0.032 1001.625 16 64 0.060 1065.220 16 64 0.047 1362.617 16 128 0.072 1777.718 16 128 0.064 1995.803 16 256 0.124 2064.888 16 256 0.106 2412.903 16 512 0.225 2274.877 16 512 0.189 2708.050 16 1024 0.442 2316.595 16 1024 0.359 2853.799 16 2048 0.852 2404.124 16 2048 0.710 2884.464 16 4096 1.672 2449.718 16 4096 1.387 2953.390 16 8192 3.335 2456.372 16 8192 2.741 2988.583 16 16384 6.595 2484.345 16 16384 5.441 3011.239 16 32768 13.398 2445.707 16 32768 10.839 3023.161 16 65536 27.493 2383.734 16 65536 21.914 2990.599 16 131072 54.887 2388.031 16 131072 45.587 2875.202 16 262144 109.687 2389.926 16 262144 90.763 2888.222 16 524288 220.796 2374.535 16 524288 182.356 2875.078 16 1048576 533.641 1964.946 16 1048576 395.029 2654.427 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1840.962 133.153 2484.345 2250.636 212.370 3023.161 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 17 4 0.056 71.392 17 4 0.020 199.729 17 8 0.032 250.406 17 8 0.025 319.566 17 16 0.037 432.960 17 16 0.029 554.619 17 32 0.045 710.147 17 32 0.039 823.422 17 64 0.066 969.081 17 64 0.058 1100.145 17 128 0.082 1565.221 17 128 0.082 1560.671 17 256 0.142 1801.580 17 256 0.145 1766.023 17 512 0.267 1917.396 17 512 0.272 1882.107 17 1024 0.513 1995.803 17 1024 0.525 1950.485 17 2048 1.020 2007.932 17 2048 1.045 1959.830 17 4096 2.008 2039.880 17 4096 2.064 1984.506 17 8192 3.999 2048.515 17 8192 4.082 2006.877 17 16384 7.947 2061.667 17 16384 8.136 2013.758 17 32768 16.119 2032.880 17 32768 16.234 2018.490 17 65536 32.737 2001.893 17 65536 32.665 2006.306 17 131072 65.408 2003.914 17 131072 65.313 2006.833 17 262144 130.761 2004.758 17 262144 130.507 2008.659 17 524288 261.477 2005.102 17 524288 262.057 2000.663 17 1048576 617.070 1699.282 17 1048576 547.228 1916.160 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1558.937 71.392 2061.667 1583.097 199.729 2018.490 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 18 4 0.031 128.070 18 4 0.047 84.733 18 8 0.034 236.299 18 8 0.025 319.566 18 16 0.037 432.960 18 16 0.030 532.610 18 32 0.046 695.429 18 32 0.039 818.401 18 64 0.062 1032.444 18 64 0.056 1142.279 18 128 0.084 1525.201 18 128 0.083 1542.733 18 256 0.146 1754.480 18 256 0.147 1743.087 18 512 0.272 1882.107 18 512 0.275 1862.518 18 1024 0.517 1980.160 18 1024 0.532 1924.269 18 2048 1.019 2009.812 18 2048 1.057 1937.725 18 4096 2.003 2044.736 18 4096 2.091 1958.713 18 8192 4.004 2045.953 18 8192 4.351 1882.829 18 16384 8.067 2031.017 18 16384 8.355 1960.948 18 32768 16.149 2029.128 18 32768 16.439 1993.313 18 65536 32.940 1989.562 18 65536 33.391 1962.685 18 131072 65.721 1994.376 18 131072 66.487 1971.398 18 262144 131.625 1991.598 18 262144 133.786 1959.428 18 524288 264.273 1983.887 18 524288 266.737 1965.562 18 1048576 610.647 1717.156 18 1048576 558.766 1876.593 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1552.862 128.070 2045.953 1549.442 84.733 1993.313 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 19 4 0.032 125.203 19 4 0.022 182.361 19 8 0.033 241.399 19 8 0.025 319.566 19 16 0.038 422.068 19 16 0.030 532.610 19 32 0.048 664.444 19 32 0.039 818.401 19 64 0.066 969.081 19 64 0.060 1065.220 19 128 0.084 1520.881 19 128 0.083 1542.733 19 256 0.148 1729.053 19 256 0.148 1731.842 19 512 0.274 1869.002 19 512 0.278 1841.753 19 1024 0.527 1943.424 19 1024 0.536 1910.573 19 2048 1.046 1958.043 19 2048 1.069 1915.686 19 4096 2.058 1990.254 19 4096 2.115 1936.633 19 8192 4.103 1996.614 19 8192 4.179 1960.277 19 16384 8.146 2011.282 19 16384 8.389 1953.035 19 32768 16.518 1983.761 19 32768 16.632 1970.168 19 65536 34.193 1916.661 19 65536 33.672 1946.314 19 131072 68.288 1919.404 19 131072 67.256 1948.853 19 262144 137.687 1903.913 19 262144 135.677 1932.120 19 524288 277.012 1892.655 19 524288 270.231 1940.147 19 1048576 631.553 1660.314 19 1048576 568.149 1845.600 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1511.445 125.203 2011.282 1541.784 182.361 1970.168 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 20 4 0.054 73.908 20 4 0.022 182.361 20 8 0.032 248.551 20 8 0.025 319.566 20 16 0.036 444.430 20 16 0.031 516.222 20 32 0.042 762.601 20 32 0.037 865.921 20 64 0.061 1048.576 20 64 0.058 1104.673 20 128 0.086 1487.177 20 128 0.085 1508.064 20 256 0.151 1696.275 20 256 0.151 1696.275 20 512 0.279 1835.456 20 512 0.282 1815.286 20 1024 0.540 1896.233 20 1024 0.544 1882.107 20 2048 1.061 1930.322 20 2048 1.083 1891.223 20 4096 2.085 1964.536 20 4096 2.139 1915.045 20 8192 4.075 2010.282 20 8192 4.232 1935.760 20 16384 8.245 1987.146 20 16384 8.434 1942.600 20 32768 16.126 2031.978 20 32768 16.829 1947.113 20 65536 34.012 1926.858 20 65536 34.260 1912.913 20 131072 67.929 1929.543 20 131072 68.440 1915.138 20 262144 135.604 1933.160 20 262144 136.791 1916.384 20 524288 271.563 1930.631 20 524288 276.491 1896.221 20 1048576 622.159 1685.383 20 1048576 581.709 1802.578 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1517.002 73.908 2031.978 1524.497 182.361 1947.113 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 21 4 0.031 129.056 21 4 0.048 83.056 21 8 0.033 243.148 21 8 0.026 307.839 21 16 0.038 419.430 21 16 0.030 536.871 21 32 0.050 639.132 21 32 0.042 758.292 21 64 0.068 938.586 21 64 0.062 1032.444 21 128 0.088 1454.935 21 128 0.085 1508.064 21 256 0.155 1651.910 21 256 0.151 1696.275 21 512 0.288 1777.718 21 512 0.284 1803.093 21 1024 0.553 1852.077 21 1024 0.549 1864.945 21 2048 1.107 1850.083 21 2048 1.094 1872.261 21 4096 2.158 1898.118 21 4096 2.156 1899.798 21 8192 4.301 1904.642 21 8192 4.280 1913.978 21 16384 8.541 1918.252 21 16384 8.531 1920.558 21 32768 17.298 1894.325 21 32768 17.052 1921.632 21 65536 35.673 1837.137 21 65536 34.533 1897.778 21 131072 71.281 1838.802 21 131072 69.010 1899.318 21 262144 142.843 1835.190 21 262144 138.068 1898.656 21 524288 288.492 1817.340 21 524288 277.728 1887.775 21 1048576 648.622 1616.621 21 1048576 589.993 1777.269 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1448.237 129.056 1918.252 1498.942 83.056 1921.632 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 22 4 0.030 133.153 22 4 0.022 182.361 22 8 0.033 243.148 22 8 0.025 319.566 22 16 0.038 422.068 22 16 0.029 550.073 22 32 0.048 664.444 22 32 0.041 780.336 22 64 0.063 1016.801 22 64 0.061 1048.576 22 128 0.087 1470.879 22 128 0.085 1503.840 22 256 0.155 1651.910 22 256 0.153 1672.495 22 512 0.287 1783.624 22 512 0.287 1783.624 22 1024 0.552 1855.277 22 1024 0.569 1800.070 22 2048 1.096 1868.596 22 2048 1.105 1853.276 22 4096 2.158 1898.118 22 4096 2.180 1878.813 22 8192 4.315 1898.433 22 8192 4.328 1892.786 22 16384 8.540 1918.520 22 16384 8.629 1898.695 22 32768 17.298 1894.325 22 32768 17.222 1902.691 22 65536 36.037 1818.577 22 65536 35.123 1865.907 22 131072 72.004 1820.341 22 131072 70.167 1867.999 22 262144 143.944 1821.152 22 262144 140.233 1869.345 22 524288 289.583 1810.492 22 524288 281.667 1861.375 22 1048576 655.413 1599.870 22 1048576 599.182 1750.012 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1452.091 133.153 1918.520 1488.518 182.361 1902.691 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 23 4 0.059 67.650 23 4 0.023 174.763 23 8 0.034 234.646 23 8 0.026 307.839 23 16 0.039 409.200 23 16 0.032 500.812 23 32 0.048 667.750 23 32 0.041 780.336 23 64 0.069 925.640 23 64 0.066 972.592 23 128 0.089 1439.332 23 128 0.089 1439.332 23 256 0.158 1619.520 23 256 0.158 1619.520 23 512 0.293 1747.342 23 512 0.294 1741.674 23 1024 0.575 1781.405 23 1024 0.565 1812.222 23 2048 1.125 1820.287 23 2048 1.121 1826.868 23 4096 2.206 1856.681 23 4096 2.207 1856.079 23 8192 4.399 1862.216 23 8192 4.381 1869.918 23 16384 8.738 1875.020 23 16384 8.731 1876.556 23 32768 17.698 1851.503 23 32768 17.424 1880.613 23 65536 36.904 1775.846 23 65536 35.812 1829.994 23 131072 73.702 1778.403 23 131072 71.540 1832.153 23 262144 147.322 1779.396 23 262144 143.018 1832.944 23 524288 296.411 1768.788 23 524288 288.194 1819.218 23 1048576 663.933 1579.340 23 1048576 610.927 1716.369 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1412.630 67.650 1875.020 1457.358 174.763 1880.613 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 24 4 0.050 80.274 24 4 0.020 199.729 24 8 0.033 241.399 24 8 0.022 360.800 24 16 0.034 469.293 24 16 0.027 593.884 24 32 0.043 745.654 24 32 0.036 888.859 24 64 0.065 986.895 24 64 0.057 1123.161 24 128 0.085 1508.064 24 128 0.083 1542.733 24 256 0.145 1766.023 24 256 0.146 1754.480 24 512 0.269 1903.798 24 512 0.271 1888.728 24 1024 0.525 1950.485 24 1024 0.523 1958.489 24 2048 1.023 2001.849 24 2048 1.040 1969.265 24 4096 2.010 2037.702 24 4096 2.046 2002.082 24 8192 4.004 2045.953 24 8192 4.059 2018.193 24 16384 7.957 2059.072 24 16384 8.088 2025.689 24 32768 16.190 2023.959 24 32768 16.143 2029.848 24 65536 34.473 1901.085 24 65536 33.229 1972.246 24 131072 68.876 1903.013 24 131072 66.436 1972.905 24 262144 137.681 1903.995 24 262144 132.704 1975.404 24 524288 277.251 1891.023 24 524288 268.258 1954.416 24 1048576 628.431 1668.562 24 1048576 572.693 1830.957 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1530.953 80.274 2059.072 1582.204 199.729 2029.848 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 25 4 0.031 129.056 25 4 0.047 85.164 25 8 0.033 243.148 25 8 0.022 364.722 25 16 0.040 399.458 25 16 0.029 554.619 25 32 0.049 654.721 25 32 0.040 798.915 25 64 0.071 903.823 25 64 0.062 1032.444 25 128 0.091 1409.110 25 128 0.088 1454.935 25 256 0.162 1579.032 25 256 0.156 1639.300 25 512 0.301 1700.304 25 512 0.294 1741.674 25 1024 0.579 1768.932 25 1024 0.569 1800.070 25 2048 1.147 1785.478 25 2048 1.142 1793.306 25 4096 2.259 1813.179 25 4096 2.230 1836.830 25 8192 4.503 1819.227 25 8192 4.428 1850.083 25 16384 8.946 1831.445 25 16384 8.828 1855.929 25 32768 18.133 1807.100 25 32768 17.618 1859.897 25 65536 38.498 1702.315 25 65536 36.487 1796.153 25 131072 76.906 1704.315 25 131072 72.879 1798.486 25 262144 153.744 1705.068 25 262144 145.705 1799.142 25 524288 308.815 1697.741 25 524288 292.496 1792.461 25 1048576 682.864 1535.556 25 1048576 627.872 1670.047 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1378.369 129.056 1831.445 1448.641 85.164 1859.897 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 26 4 0.032 125.203 26 4 0.019 212.370 26 8 0.033 241.399 26 8 0.022 364.722 26 16 0.040 401.849 26 16 0.029 550.073 26 32 0.051 627.186 26 32 0.040 798.915 26 64 0.068 938.586 26 64 0.060 1065.220 26 128 0.091 1409.110 26 128 0.087 1470.879 26 256 0.160 1600.211 26 256 0.156 1641.807 26 512 0.296 1730.446 26 512 0.293 1747.342 26 1024 0.583 1756.633 26 1024 0.568 1803.093 26 2048 1.132 1809.169 26 2048 1.130 1812.222 26 4096 2.232 1835.064 26 4096 2.229 1837.616 26 8192 4.452 1840.076 26 8192 4.427 1850.382 26 16384 8.843 1852.726 26 16384 8.829 1855.728 26 32768 17.942 1826.334 26 32768 17.624 1859.268 26 65536 38.124 1719.018 26 65536 37.061 1768.318 26 131072 76.168 1720.826 26 131072 74.030 1770.527 26 262144 152.221 1722.128 26 262144 147.998 1771.269 26 524288 308.000 1702.233 26 524288 299.144 1752.627 26 1048576 686.554 1527.303 26 1048576 638.111 1643.250 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1388.711 125.203 1852.726 1451.349 212.370 1859.268 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 27 4 0.056 71.698 27 4 0.020 199.729 27 8 0.035 228.261 27 8 0.022 364.722 27 16 0.039 411.711 27 16 0.028 568.719 27 32 0.049 651.542 27 32 0.039 823.422 27 64 0.072 888.859 27 64 0.063 1016.801 27 128 0.093 1376.592 27 128 0.089 1435.484 27 256 0.164 1560.671 27 256 0.159 1609.808 27 512 0.308 1662.139 27 512 0.300 1705.706 27 1024 0.595 1720.740 27 1024 0.581 1762.399 27 2048 1.181 1734.289 27 2048 1.156 1771.486 27 4096 2.329 1758.791 27 4096 2.289 1789.383 27 8192 4.642 1764.753 27 8192 4.533 1807.171 27 16384 9.235 1774.093 27 16384 9.026 1815.190 27 32768 18.724 1750.034 27 32768 18.019 1818.529 27 65536 39.876 1643.486 27 65536 38.026 1723.448 27 131072 79.706 1644.444 27 131072 75.963 1725.471 27 262144 159.271 1645.899 27 262144 151.833 1726.528 27 524288 319.328 1641.849 27 524288 304.918 1719.440 27 1048576 712.099 1472.514 27 1048576 657.914 1593.789 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1336.967 71.698 1774.093 1419.854 199.729 1818.529 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 28 4 0.030 133.153 28 4 0.045 88.768 28 8 0.033 243.148 28 8 0.021 381.300 28 16 0.038 422.068 28 16 0.028 568.719 28 32 0.044 725.501 28 32 0.039 818.401 28 64 0.065 986.895 28 64 0.062 1032.444 28 128 0.091 1405.421 28 128 0.091 1405.421 28 256 0.161 1590.729 28 256 0.161 1590.729 28 512 0.299 1712.507 28 512 0.300 1707.062 28 1024 0.573 1787.336 28 1024 0.577 1774.780 28 2048 1.133 1807.266 28 2048 1.146 1786.964 28 4096 2.232 1835.064 28 4096 2.268 1806.126 28 8192 4.445 1842.938 28 8192 4.480 1828.618 28 16384 8.845 1852.377 28 16384 8.930 1834.672 28 32768 18.295 1791.086 28 32768 17.864 1834.305 28 65536 38.161 1717.354 28 65536 37.503 1747.487 28 131072 76.217 1719.717 28 131072 74.941 1749.004 28 262144 152.373 1720.412 28 262144 149.877 1749.060 28 524288 307.612 1704.380 28 524288 301.378 1739.636 28 1048576 697.181 1504.023 28 1048576 653.828 1603.749 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1394.809 133.153 1852.377 1423.539 88.768 1834.672 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 29 4 0.031 129.056 29 4 0.046 87.381 29 8 0.033 243.148 29 8 0.023 349.525 29 16 0.039 411.711 29 16 0.031 516.222 29 32 0.052 615.678 29 32 0.041 780.336 29 64 0.072 888.859 29 64 0.067 955.286 29 128 0.095 1348.922 29 128 0.091 1405.421 29 256 0.169 1514.445 29 256 0.166 1542.733 29 512 0.317 1614.649 29 512 0.311 1646.843 29 1024 0.613 1670.543 29 1024 0.601 1703.676 29 2048 1.218 1681.663 29 2048 1.195 1713.874 29 4096 2.414 1696.610 29 4096 2.356 1738.501 29 8192 4.785 1712.080 29 8192 4.681 1750.012 29 16384 9.534 1718.502 29 16384 9.324 1757.172 29 32768 19.321 1695.961 29 32768 18.793 1743.640 29 65536 41.146 1592.766 29 65536 39.131 1674.788 29 131072 82.230 1593.971 29 131072 78.407 1671.686 29 262144 164.175 1596.735 29 262144 156.256 1677.655 29 524288 331.104 1583.455 29 524288 315.753 1660.437 29 1048576 719.325 1457.723 29 1048576 681.604 1538.394 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1303.499 129.056 1718.502 1363.873 87.381 1757.172 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 30 4 0.031 129.056 30 4 0.020 199.729 30 8 0.033 243.148 30 8 0.022 364.722 30 16 0.038 422.068 30 16 0.028 568.719 30 32 0.051 627.186 30 32 0.041 780.336 30 64 0.068 941.879 30 64 0.064 1001.625 30 128 0.097 1322.342 30 128 0.095 1345.541 30 256 0.171 1495.462 30 256 0.168 1523.038 30 512 0.321 1595.456 30 512 0.314 1630.587 30 1024 0.621 1649.373 30 1024 0.604 1695.605 30 2048 1.245 1644.951 30 2048 1.197 1711.142 30 4096 2.429 1686.285 30 4096 2.357 1737.798 30 8192 4.853 1688.024 30 8192 4.679 1750.815 30 16384 9.634 1700.640 30 16384 9.325 1756.992 30 32768 19.498 1680.594 30 32768 18.709 1751.462 30 65536 40.690 1610.619 30 65536 39.229 1670.594 30 131072 81.294 1612.320 30 131072 78.435 1671.092 30 262144 162.672 1611.488 30 262144 156.751 1672.358 30 524288 329.490 1591.211 30 524288 320.332 1636.702 30 1048576 722.995 1450.323 30 1048576 686.395 1527.657 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1300.128 129.056 1700.640 1368.238 199.729 1756.992 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 31 4 0.056 71.392 31 4 0.020 199.729 31 8 0.033 241.399 31 8 0.021 381.300 31 16 0.038 422.068 31 16 0.028 573.580 31 32 0.050 639.132 31 32 0.041 780.336 31 64 0.074 865.921 31 64 0.066 969.081 31 128 0.100 1281.315 31 128 0.093 1376.592 31 256 0.176 1454.935 31 256 0.170 1505.949 31 512 0.336 1523.038 31 512 0.317 1614.649 31 1024 0.644 1590.140 31 1024 0.612 1673.147 31 2048 1.273 1608.903 31 2048 1.215 1685.623 31 4096 2.508 1633.223 31 4096 2.403 1704.521 31 8192 4.990 1641.729 31 8192 4.756 1722.465 31 16384 9.934 1649.294 31 16384 9.474 1729.357 31 32768 20.097 1630.491 31 32768 19.110 1714.708 31 65536 42.380 1546.395 31 65536 39.864 1643.987 31 131072 84.581 1549.664 31 131072 79.634 1645.931 31 262144 169.172 1549.570 31 262144 159.222 1646.404 31 524288 343.454 1526.516 31 524288 322.074 1627.850 31 1048576 742.813 1411.628 31 1048576 700.204 1497.529 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1254.566 71.392 1649.294 1352.249 199.729 1729.357 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 32 4 0.019 209.715 32 4 0.018 223.696 32 8 0.019 419.430 32 8 0.019 424.740 32 16 0.023 691.844 32 16 0.023 691.844 32 32 0.030 1073.742 32 32 0.032 1001.625 32 64 0.050 1278.264 32 64 0.051 1254.371 32 128 0.065 1966.560 32 128 0.067 1910.573 32 256 0.118 2169.175 32 256 0.118 2169.175 32 512 0.218 2349.544 32 512 0.217 2359.872 32 1024 0.418 2450.067 32 1024 0.418 2450.067 32 2048 0.833 2458.482 32 2048 0.844 2426.535 32 4096 1.663 2463.064 32 4096 1.635 2505.084 32 8192 3.250 2520.706 32 8192 3.245 2524.410 32 16384 6.465 2534.278 32 16384 6.456 2537.834 32 32768 13.280 2467.486 32 32768 13.097 2501.938 32 65536 28.593 2292.024 32 65536 28.826 2273.503 32 131072 57.013 2298.993 32 131072 57.593 2275.828 32 262144 114.007 2299.368 32 262144 115.174 2276.073 32 524288 234.340 2237.297 32 524288 241.904 2167.341 32 1048576 557.918 1879.444 32 1048576 558.354 1877.977 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1897.868 209.715 2534.278 1886.973 223.696 2537.834 stats by bits per item pack: unpack: bits avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1 2035.453 48.913 2842.937 3209.557 125.203 4478.261 2 2158.907 137.518 2942.010 2922.022 190.650 3943.743 3 2018.534 129.056 2723.829 2552.247 85.164 3381.666 4 2165.642 133.153 2941.381 2444.614 209.715 3186.787 5 2009.165 125.203 2746.253 2498.356 79.892 3380.762 6 1956.344 134.218 2657.982 2407.365 199.729 3280.009 7 1902.777 68.759 2604.293 2327.802 199.729 3096.954 8 2038.638 133.153 2781.715 2523.088 212.370 3378.829 9 1833.390 75.573 2453.829 2074.758 172.961 2759.985 10 1785.871 133.153 2401.939 2016.438 83.469 2667.319 11 1750.296 125.203 2364.907 1923.975 182.361 2509.705 12 1789.879 79.892 2442.404 1910.802 180.400 2509.224 13 1685.046 129.056 2251.769 1780.805 182.361 2300.330 14 1662.938 70.198 2224.399 1739.427 180.400 2235.361 15 1606.697 129.056 2138.928 1657.564 89.241 2120.775 16 1840.962 133.153 2484.345 2250.636 212.370 3023.161 17 1558.937 71.392 2061.667 1583.097 199.729 2018.490 18 1552.862 128.070 2045.953 1549.442 84.733 1993.313 19 1511.445 125.203 2011.282 1541.784 182.361 1970.168 20 1517.002 73.908 2031.978 1524.497 182.361 1947.113 21 1448.237 129.056 1918.252 1498.942 83.056 1921.632 22 1452.091 133.153 1918.520 1488.518 182.361 1902.691 23 1412.630 67.650 1875.020 1457.358 174.763 1880.613 24 1530.953 80.274 2059.072 1582.204 199.729 2029.848 25 1378.369 129.056 1831.445 1448.641 85.164 1859.897 26 1388.711 125.203 1852.726 1451.349 212.370 1859.268 27 1336.967 71.698 1774.093 1419.854 199.729 1818.529 28 1394.809 133.153 1852.377 1423.539 88.768 1834.672 29 1303.499 129.056 1718.502 1363.873 87.381 1757.172 30 1300.128 129.056 1700.640 1368.238 199.729 1756.992 31 1254.566 71.392 1649.294 1352.249 199.729 1729.357 32 1897.868 209.715 2534.278 1886.973 223.696 2537.834 stats by size pack: unpack: size(B) avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4 112.259 48.913 209.715 161.615 79.892 223.696 8 250.586 135.848 419.430 355.993 294.337 424.740 16 443.801 253.241 691.844 584.795 381.300 699.051 32 709.488 438.620 1073.742 892.924 758.292 1100.145 64 1002.315 640.657 1278.264 1178.158 955.286 1560.671 128 1623.448 1281.315 1966.560 1787.370 1345.541 2671.000 256 1887.575 1454.935 2370.291 2062.597 1505.949 3195.660 512 2054.516 1523.038 2625.286 2238.695 1614.649 3734.754 1024 2146.624 1590.140 2781.715 2341.291 1673.147 4063.356 2048 2171.062 1608.903 2829.359 2374.775 1685.623 4180.017 4096 2214.000 1633.223 2892.721 2421.944 1704.521 4329.604 8192 2233.427 1641.729 2926.724 2446.612 1722.465 4404.530 16384 2241.681 1649.294 2942.010 2460.340 1729.357 4420.965 32768 2212.148 1630.491 2905.256 2465.666 1714.708 4460.132 65536 2142.640 1546.395 2902.005 2433.339 1643.987 4471.886 131072 2146.244 1549.664 2907.930 2422.556 1645.931 4476.511 262144 2147.008 1549.570 2910.255 2416.627 1646.404 4478.261 524288 2133.849 1526.516 2887.927 2403.487 1627.850 4474.898 1048576 1880.851 1411.628 2695.797 2283.100 1497.529 4391.775 real 1m6.809s user 1m6.781s sys 0m0.000s ================================================ FILE: benchmark/PackedArraySelfBench-unrolled-mbp-corei7-M620-2.67GHz.txt ================================================ -- PackedArray self bench ------------------------------------------------------ memcpy: bits size (B) time (µs) speed (B/µs) 32 4 0.017 236.299 32 8 0.011 713.924 32 16 0.013 1242.757 32 32 0.016 1973.790 32 64 0.027 2375.535 32 128 0.017 7561.562 32 256 0.020 12782.641 32 512 0.029 17602.325 32 1024 0.044 23342.214 32 2048 0.072 28537.989 32 4096 0.129 31755.766 32 8192 0.305 26864.534 32 16384 0.715 22914.130 32 32768 2.542 12890.541 32 65536 4.018 16310.325 32 131072 9.677 13544.787 32 262144 48.111 5448.737 32 524288 44.177 11867.944 32 1048576 86.460 12127.892 avg (B/µs) min (B/µs) max (B/µs) 13162.826 236.299 31755.766 loopcpy: bits size (B) time (µs) speed (B/µs) 32 4 0.006 671.089 32 8 0.005 1597.830 32 16 0.006 2581.110 32 32 0.009 3532.045 32 64 0.015 4260.880 32 128 0.009 14128.182 32 256 0.012 21474.836 32 512 0.019 26843.546 32 1024 0.029 35204.650 32 2048 0.050 40904.450 32 4096 0.091 44973.480 32 8192 0.202 40566.397 32 16384 0.466 35150.627 32 32768 1.662 19715.816 32 65536 3.346 19586.569 32 131072 6.706 19545.483 32 262144 21.390 12255.469 32 524288 43.196 12137.431 32 1048576 86.488 12123.947 avg (B/µs) min (B/µs) max (B/µs) 19329.149 671.089 44973.480 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 1 4 0.038 104.858 1 4 0.008 508.400 1 8 0.020 399.458 1 8 0.008 1016.801 1 16 0.024 664.444 1 16 0.008 1973.790 1 32 0.028 1147.160 1 32 0.011 2855.696 1 64 0.037 1731.842 1 64 0.016 4006.499 1 128 0.027 4751.070 1 128 0.021 6100.806 1 256 0.046 5563.429 1 256 0.034 7508.684 1 512 0.085 6032.257 1 512 0.063 8134.408 1 1024 0.164 6242.685 1 1024 0.120 8538.702 1 2048 0.312 6567.228 1 2048 0.233 8783.164 1 4096 0.617 6638.280 1 4096 0.459 8924.607 1 8192 1.227 6675.683 1 8192 0.911 8992.342 1 16384 2.522 6496.453 1 16384 1.844 8885.373 1 32768 4.958 6609.231 1 32768 3.686 8889.396 1 65536 9.992 6558.923 1 65536 7.504 8733.214 1 131072 19.971 6563.151 1 131072 15.357 8535.123 1 262144 40.013 6551.459 1 262144 29.979 8744.257 1 524288 82.964 6319.468 1 524288 59.126 8867.315 1 1048576 164.104 6389.705 1 1048576 119.065 8806.749 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4842.462 104.858 6675.683 6779.228 508.400 8992.342 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 2 4 0.012 335.544 2 4 0.020 199.729 2 8 0.012 671.089 2 8 0.008 1016.801 2 16 0.013 1220.161 2 16 0.009 1766.023 2 32 0.015 2130.440 2 32 0.011 2917.777 2 64 0.021 3050.403 2 64 0.015 4260.880 2 128 0.025 5113.056 2 128 0.021 6100.806 2 256 0.044 5804.010 2 256 0.034 7561.562 2 512 0.079 6468.324 2 512 0.062 8259.552 2 1024 0.154 6648.556 2 1024 0.117 8747.388 2 2048 0.332 6166.500 2 2048 0.271 7554.912 2 4096 0.628 6522.350 2 4096 0.476 8602.839 2 8192 1.220 6714.821 2 8192 0.895 9152.834 2 16384 2.420 6770.392 2 16384 1.787 9168.709 2 32768 4.893 6697.152 2 32768 3.656 8962.436 2 65536 10.055 6517.710 2 65536 7.821 8379.402 2 131072 22.846 5737.201 2 131072 19.489 6725.418 2 262144 42.227 6207.967 2 262144 29.401 8916.140 2 524288 80.042 6550.151 2 524288 58.894 8902.207 2 1048576 160.998 6512.971 2 1048576 118.001 8886.163 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 5044.147 335.544 6770.392 6635.872 199.729 9168.709 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 3 4 0.011 364.722 3 4 0.020 199.729 3 8 0.011 729.444 3 8 0.006 1342.177 3 16 0.012 1315.860 3 16 0.007 2314.099 3 32 0.015 2130.440 3 32 0.009 3532.045 3 64 0.021 3050.403 3 64 0.013 4971.027 3 128 0.025 5113.056 3 128 0.019 6710.886 3 256 0.042 6100.806 3 256 0.034 7561.562 3 512 0.081 6316.128 3 512 0.063 8134.408 3 1024 0.156 6567.228 3 1024 0.123 8323.580 3 2048 0.306 6689.980 3 2048 0.242 8462.990 3 4096 0.620 6605.102 3 4096 0.520 7877.061 3 8192 1.233 6643.414 3 8192 0.970 8444.271 3 16384 2.471 6630.594 3 16384 1.956 8376.338 3 32768 5.096 6430.193 3 32768 3.957 8280.952 3 65536 9.954 6583.902 3 65536 7.789 8413.771 3 131072 20.331 6446.858 3 131072 15.865 8261.787 3 262144 40.979 6397.010 3 262144 32.202 8140.611 3 524288 81.785 6410.567 3 524288 62.949 8328.782 3 1048576 174.265 6017.138 3 1048576 174.452 6010.683 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 5081.202 364.722 6689.980 6509.829 199.729 8462.990 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 4 4 0.012 328.965 4 4 0.007 578.525 4 8 0.011 713.924 4 8 0.007 1157.049 4 16 0.012 1315.860 4 16 0.008 2033.602 4 32 0.015 2130.440 4 32 0.010 3195.660 4 64 0.020 3195.660 4 64 0.015 4260.880 4 128 0.026 4925.421 4 128 0.023 5534.752 4 256 0.045 5681.174 4 256 0.037 6927.367 4 512 0.084 6083.523 4 512 0.067 7642.291 4 1024 0.164 6242.685 4 1024 0.200 5119.151 4 2048 0.548 3738.005 4 2048 0.325 6302.226 4 4096 0.650 6299.915 4 4096 0.488 8392.706 4 8192 1.351 6064.197 4 8192 1.347 6082.446 4 16384 2.306 7104.991 4 16384 2.155 7603.394 4 32768 4.984 6574.768 4 32768 3.616 9062.307 4 65536 9.821 6673.090 4 65536 7.697 8514.370 4 131072 19.025 6889.516 4 131072 14.765 8877.195 4 262144 40.733 6435.688 4 262144 31.070 8437.208 4 524288 81.231 6454.275 4 524288 59.165 8861.455 4 1048576 160.490 6533.589 4 1048576 121.469 8632.456 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4915.036 328.965 7104.991 6169.213 578.525 9062.307 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 5 4 0.026 152.520 5 4 0.007 578.525 5 8 0.011 729.444 5 8 0.007 1157.049 5 16 0.013 1242.757 5 16 0.007 2314.099 5 32 0.016 2003.250 5 32 0.010 3273.603 5 64 0.022 2886.403 5 64 0.016 4006.499 5 128 0.024 5315.554 5 128 0.023 5592.405 5 256 0.043 5932.275 5 256 0.039 6587.373 5 512 0.081 6334.760 5 512 0.071 7206.321 5 1024 0.156 6557.202 5 1024 0.137 7482.521 5 2048 0.308 6653.706 5 2048 0.262 7823.256 5 4096 0.607 6747.788 5 4096 0.532 7700.524 5 8192 1.208 6781.081 5 8192 1.125 7282.691 5 16384 2.524 6491.543 5 16384 2.064 7938.024 5 32768 5.059 6477.164 5 32768 4.283 7650.373 5 65536 10.035 6530.718 5 65536 8.311 7885.421 5 131072 20.160 6501.600 5 131072 16.633 7880.222 5 262144 40.829 6420.543 5 262144 38.612 6789.204 5 524288 84.036 6238.859 5 524288 67.788 7734.216 5 1048576 180.467 5810.343 5 1048576 141.156 7428.480 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 5042.501 152.520 6781.081 6016.358 578.525 7938.024 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 6 4 0.024 166.111 6 4 0.006 671.089 6 8 0.011 713.924 6 8 0.006 1342.177 6 16 0.012 1342.177 6 16 0.007 2314.099 6 32 0.015 2130.440 6 32 0.010 3195.660 6 64 0.020 3195.660 6 64 0.016 4006.499 6 128 0.024 5315.554 6 128 0.023 5534.752 6 256 0.043 5965.232 6 256 0.040 6391.320 6 512 0.079 6487.866 6 512 0.075 6817.408 6 1024 0.161 6362.915 6 1024 0.166 6162.076 6 2048 0.329 6224.590 6 2048 0.302 6779.743 6 4096 0.600 6825.534 6 4096 0.550 7446.844 6 8192 1.338 6122.548 6 8192 1.179 6948.380 6 16384 2.841 5766.992 6 16384 2.088 7847.377 6 32768 5.132 6385.085 6 32768 4.643 7057.562 6 65536 10.978 5969.637 6 65536 8.603 7617.723 6 131072 21.254 6166.915 6 131072 17.844 7345.454 6 262144 42.067 6231.575 6 262144 34.380 7624.907 6 524288 82.645 6343.843 6 524288 71.721 7310.097 6 1048576 172.120 6092.118 6 1048576 150.064 6987.526 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4937.301 166.111 6825.534 5757.931 671.089 7847.377 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 7 4 0.024 166.111 7 4 0.006 671.089 7 8 0.012 671.089 7 8 0.007 1157.049 7 16 0.013 1242.757 7 16 0.008 1973.790 7 32 0.017 1864.135 7 32 0.012 2684.355 7 64 0.023 2767.376 7 64 0.020 3195.660 7 128 0.027 4751.070 7 128 0.029 4436.950 7 256 0.047 5422.939 7 256 0.048 5341.999 7 512 0.090 5681.174 7 512 0.086 5948.708 7 1024 0.172 5956.959 7 1024 0.155 6597.492 7 2048 0.337 6079.218 7 2048 0.337 6079.218 7 4096 0.663 6177.587 7 4096 0.608 6737.204 7 8192 1.325 6183.145 7 8192 1.226 6682.174 7 16384 3.401 4817.349 7 16384 3.852 4253.496 7 32768 5.527 5928.693 7 32768 4.597 7128.207 7 65536 10.318 6351.593 7 65536 9.161 7153.808 7 131072 22.592 5801.682 7 131072 19.712 6649.360 7 262144 44.990 5826.709 7 262144 36.932 7098.020 7 524288 82.487 6356.018 7 524288 79.152 6623.803 7 1048576 182.572 5743.352 7 1048576 147.397 7113.956 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4620.471 166.111 6356.018 5132.965 671.089 7153.808 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 8 4 0.023 174.763 8 4 0.007 578.525 8 8 0.010 798.915 8 8 0.007 1157.049 8 16 0.011 1427.848 8 16 0.007 2314.099 8 32 0.013 2440.322 8 32 0.012 2684.355 8 64 0.018 3532.045 8 64 0.014 4549.753 8 128 0.023 5534.752 8 128 0.022 5835.553 8 256 0.040 6391.320 8 256 0.033 7780.738 8 512 0.073 6995.061 8 512 0.056 9138.228 8 1024 0.141 7267.288 8 1024 0.110 9316.632 8 2048 0.276 7417.906 8 2048 0.211 9706.141 8 4096 0.550 7446.844 8 4096 0.407 10064.364 8 8192 1.150 7124.142 8 8192 0.757 10821.965 8 16384 2.172 7543.302 8 16384 1.486 11025.105 8 32768 4.485 7306.308 8 32768 3.176 10317.465 8 65536 8.966 7309.416 8 65536 6.158 10642.632 8 131072 18.125 7231.631 8 131072 12.970 10105.805 8 262144 37.254 7036.694 8 262144 26.290 9971.267 8 524288 73.907 7093.875 8 524288 52.067 10069.479 8 1048576 171.086 6128.938 8 1048576 123.777 8471.499 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 5589.546 174.763 7543.302 7607.929 578.525 11025.105 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 9 4 0.028 142.180 9 4 0.007 559.241 9 8 0.012 671.089 9 8 0.007 1118.481 9 16 0.013 1242.757 9 16 0.008 2033.602 9 32 0.017 1864.135 9 32 0.011 2917.777 9 64 0.024 2657.777 9 64 0.018 3579.139 9 128 0.027 4751.070 9 128 0.028 4588.640 9 256 0.047 5450.466 9 256 0.050 5113.056 9 512 0.093 5506.368 9 512 0.089 5757.329 9 1024 0.170 6023.797 9 1024 0.169 6057.782 9 2048 0.334 6131.288 9 2048 0.326 6283.785 9 4096 0.947 4325.244 9 4096 0.690 5936.375 9 8192 1.325 6183.145 9 8192 1.339 6118.187 9 16384 2.647 6189.829 9 16384 2.466 6644.057 9 32768 5.181 6324.557 9 32768 4.889 6702.378 9 65536 10.198 6426.435 9 65536 10.003 6551.732 9 131072 20.571 6371.690 9 131072 20.236 6477.164 9 262144 41.629 6297.137 9 262144 40.331 6499.794 9 524288 83.375 6288.314 9 524288 82.173 6380.287 9 1048576 184.519 5682.759 9 1048576 201.200 5211.610 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4659.476 142.180 6426.435 4975.285 559.241 6702.378 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 10 4 0.011 356.962 10 4 0.015 266.305 10 8 0.012 671.089 10 8 0.007 1118.481 10 16 0.013 1242.757 10 16 0.008 2033.602 10 32 0.016 1973.790 10 32 0.011 2917.777 10 64 0.021 3050.403 10 64 0.019 3355.443 10 128 0.027 4751.070 10 128 0.028 4549.753 10 256 0.047 5450.466 10 256 0.048 5315.554 10 512 0.089 5757.329 10 512 0.087 5883.517 10 1024 0.169 6057.782 10 1024 0.166 6170.930 10 2048 0.334 6131.288 10 2048 0.322 6358.205 10 4096 0.657 6233.625 10 4096 0.636 6439.231 10 8192 1.360 6022.741 10 8192 1.567 5227.406 10 16384 3.088 5305.704 10 16384 2.562 6394.889 10 32768 5.418 6047.919 10 32768 5.933 5522.964 10 65536 12.943 5063.420 10 65536 19.158 3420.794 10 131072 26.688 4911.297 10 131072 29.261 4479.392 10 262144 67.126 3905.251 10 262144 46.694 5614.107 10 524288 96.166 5451.912 10 524288 100.573 5213.006 10 1048576 207.773 5046.739 10 1048576 218.937 4789.398 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4391.134 356.962 6233.625 4477.408 266.305 6439.231 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 11 4 0.011 364.722 11 4 0.020 202.135 11 8 0.011 729.444 11 8 0.006 1342.177 11 16 0.013 1220.161 11 16 0.008 2033.602 11 32 0.015 2130.440 11 32 0.011 2917.777 11 64 0.021 3050.403 11 64 0.018 3532.045 11 128 0.026 4925.421 11 128 0.029 4400.581 11 256 0.045 5681.174 11 256 0.049 5237.765 11 512 0.081 6316.128 11 512 0.087 5883.517 11 1024 0.160 6391.320 11 1024 0.204 5023.354 11 2048 0.353 5800.091 11 2048 0.317 6463.457 11 4096 0.662 6186.485 11 4096 0.673 6087.835 11 8192 1.237 6622.926 11 8192 1.344 6095.394 11 16384 2.491 6576.656 11 16384 2.520 6501.370 11 32768 5.084 6445.271 11 32768 6.276 5221.250 11 65536 10.815 6059.785 11 65536 10.802 6067.141 11 131072 20.851 6286.156 11 131072 20.565 6373.537 11 262144 43.239 6062.659 11 262144 42.028 6237.373 11 524288 85.359 6142.146 11 524288 87.275 6007.308 11 1048576 173.926 6028.867 11 1048576 170.329 6156.185 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4895.803 364.722 6622.926 4830.727 202.135 6501.370 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 12 4 0.010 399.458 12 4 0.019 209.715 12 8 0.010 798.915 12 8 0.007 1157.049 12 16 0.013 1220.161 12 16 0.007 2314.099 12 32 0.015 2130.440 12 32 0.011 2917.777 12 64 0.020 3195.660 12 64 0.019 3355.443 12 128 0.024 5315.554 12 128 0.027 4751.070 12 256 0.042 6100.806 12 256 0.047 5450.466 12 512 0.080 6410.399 12 512 0.087 5883.517 12 1024 0.154 6648.556 12 1024 0.162 6325.430 12 2048 0.301 6806.604 12 2048 0.341 6002.750 12 4096 0.625 6554.700 12 4096 0.637 6429.592 12 8192 1.186 6907.869 12 8192 1.217 6731.924 12 16384 2.374 6901.625 12 16384 2.409 6801.215 12 32768 4.996 6559.080 12 32768 4.887 6705.320 12 65536 10.176 6440.287 12 65536 10.268 6382.565 12 131072 20.275 6464.749 12 131072 19.699 6653.706 12 262144 40.689 6442.627 12 262144 39.786 6588.834 12 524288 82.262 6373.389 12 524288 128.657 4075.088 12 1048576 245.208 4276.271 12 1048576 159.897 6557.828 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 5049.850 399.458 6907.869 5015.441 209.715 6801.215 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 13 4 0.012 335.544 13 4 0.021 190.650 13 8 0.011 729.444 13 8 0.007 1118.481 13 16 0.013 1242.757 13 16 0.007 2236.962 13 32 0.016 2003.250 13 32 0.011 2917.777 13 64 0.022 2886.403 13 64 0.019 3397.917 13 128 0.027 4751.070 13 128 0.028 4549.753 13 256 0.045 5711.393 13 256 0.050 5113.056 13 512 0.085 6015.360 13 512 0.092 5563.429 13 1024 0.165 6206.600 13 1024 0.190 5395.688 13 2048 0.316 6482.970 13 2048 0.338 6057.782 13 4096 0.687 5963.162 13 4096 0.671 6105.142 13 8192 1.243 6591.164 13 8192 1.371 5974.568 13 16384 2.568 6380.046 13 16384 2.717 6030.140 13 32768 5.501 5956.701 13 32768 5.501 5956.701 13 65536 10.977 5970.285 13 65536 11.071 5919.628 13 131072 22.623 5793.795 13 131072 25.357 5169.113 13 262144 43.446 6033.780 13 262144 45.025 5822.173 13 524288 90.900 5767.748 13 524288 89.226 5875.955 13 1048576 171.693 6107.270 13 1048576 193.194 5427.576 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4785.723 335.544 6591.164 4674.868 190.650 6105.142 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 14 4 0.011 364.722 14 4 0.021 190.650 14 8 0.011 729.444 14 8 0.007 1157.049 14 16 0.013 1220.161 14 16 0.008 2033.602 14 32 0.016 1973.790 14 32 0.011 2917.777 14 64 0.022 2917.777 14 64 0.019 3397.917 14 128 0.025 5113.056 14 128 0.030 4260.880 14 256 0.045 5711.393 14 256 0.051 5017.485 14 512 0.083 6170.930 14 512 0.093 5506.368 14 1024 0.160 6400.845 14 1024 0.173 5924.093 14 2048 0.341 6002.750 14 2048 0.552 3710.555 14 4096 1.017 4027.161 14 4096 1.086 3771.651 14 8192 1.669 4907.833 14 8192 2.322 3527.694 14 16384 4.587 3571.884 14 16384 3.570 4589.560 14 32768 5.228 6267.738 14 32768 5.493 5965.491 14 65536 10.301 6362.031 14 65536 11.093 5907.922 14 131072 22.441 5840.761 14 131072 22.267 5886.352 14 262144 48.597 5394.232 14 262144 45.640 5743.735 14 524288 84.316 6218.131 14 524288 90.929 5765.918 14 1048576 173.847 6031.604 14 1048576 188.814 5553.489 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4485.592 364.722 6400.845 4254.115 190.650 5965.491 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 15 4 0.011 364.722 15 4 0.015 266.305 15 8 0.011 729.444 15 8 0.007 1118.481 15 16 0.013 1242.757 15 16 0.008 1973.790 15 32 0.016 2003.250 15 32 0.011 2917.777 15 64 0.024 2684.355 15 64 0.020 3195.660 15 128 0.027 4709.394 15 128 0.031 4129.776 15 256 0.047 5450.466 15 256 0.053 4814.986 15 512 0.084 6100.806 15 512 0.095 5382.165 15 1024 0.164 6242.685 15 1024 0.184 5563.429 15 2048 0.470 4358.161 15 2048 0.487 4204.569 15 4096 0.632 6480.524 15 4096 0.705 5809.898 15 8192 1.263 6486.641 15 8192 1.521 5386.383 15 16384 4.007 4088.985 15 16384 5.007 3272.356 15 32768 7.781 4211.268 15 32768 7.711 4249.550 15 65536 11.549 5674.606 15 65536 12.897 5081.486 15 131072 33.468 3916.337 15 131072 28.046 4673.443 15 262144 57.288 4575.903 15 262144 68.863 3806.738 15 524288 101.070 5187.367 15 524288 105.392 4974.648 15 1048576 173.995 6026.471 15 1048576 191.976 5462.014 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4238.639 364.722 6486.641 4014.919 266.305 5809.898 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 16 4 0.008 508.400 16 4 0.019 212.370 16 8 0.007 1118.481 16 8 0.006 1342.177 16 16 0.008 1973.790 16 16 0.006 2684.355 16 32 0.010 3195.660 16 32 0.010 3195.660 16 64 0.015 4260.880 16 64 0.015 4260.880 16 128 0.019 6795.834 16 128 0.021 6100.806 16 256 0.035 7304.366 16 256 0.034 7561.562 16 512 0.063 8103.712 16 512 0.059 8694.266 16 1024 0.131 7823.256 16 1024 0.118 8676.702 16 2048 0.237 8641.785 16 2048 0.213 9619.188 16 4096 0.468 8751.844 16 4096 0.419 9777.956 16 8192 0.942 8696.466 16 8192 0.806 10162.596 16 16384 1.897 8637.441 16 16384 1.586 10330.649 16 32768 4.106 7980.429 16 32768 3.239 10116.964 16 65536 8.000 8192.105 16 65536 6.530 10036.069 16 131072 15.650 8375.189 16 131072 13.187 9939.537 16 262144 32.624 8035.310 16 262144 28.043 9347.919 16 524288 65.357 8021.914 16 524288 56.990 9199.664 16 1048576 131.988 7944.477 16 1048576 127.428 8228.784 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 6545.334 508.400 8751.844 7341.479 212.370 10330.649 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 17 4 0.011 364.722 17 4 0.021 190.650 17 8 0.011 729.444 17 8 0.006 1342.177 17 16 0.013 1220.161 17 16 0.007 2314.099 17 32 0.017 1864.135 17 32 0.011 2917.777 17 64 0.023 2767.376 17 64 0.020 3195.660 17 128 0.027 4751.070 17 128 0.033 3862.381 17 256 0.047 5450.466 17 256 0.057 4492.644 17 512 0.086 5965.232 17 512 0.102 5017.485 17 1024 0.165 6206.600 17 1024 0.209 4897.340 17 2048 0.341 6006.947 17 2048 0.384 5332.051 17 4096 0.642 6379.454 17 4096 0.757 5410.982 17 8192 1.277 6415.186 17 8192 1.524 5375.428 17 16384 2.675 6124.731 17 16384 2.966 5524.074 17 32768 5.280 6206.040 17 32768 6.201 5284.284 17 65536 10.906 6009.180 17 65536 12.401 5284.691 17 131072 23.116 5670.158 17 131072 24.511 5347.507 17 262144 43.864 5976.289 17 262144 49.893 5254.134 17 524288 103.684 5056.598 17 524288 106.696 4913.843 17 1048576 174.522 6008.277 17 1048576 199.913 5245.161 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4693.267 364.722 6415.186 4273.809 190.650 5524.074 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 18 4 0.012 328.965 18 4 0.019 209.715 18 8 0.011 729.444 18 8 0.006 1342.177 18 16 0.013 1242.757 18 16 0.008 1973.790 18 32 0.016 2003.250 18 32 0.012 2684.355 18 64 0.021 3050.403 18 64 0.020 3195.660 18 128 0.028 4588.640 18 128 0.034 3754.342 18 256 0.045 5681.174 18 256 0.058 4418.691 18 512 0.084 6083.523 18 512 0.102 5017.485 18 1024 0.163 6288.385 18 1024 0.196 5225.021 18 2048 0.375 5460.861 18 2048 0.399 5134.450 18 4096 0.626 6542.220 18 4096 0.756 5417.808 18 8192 1.253 6537.241 18 8192 1.531 5351.151 18 16384 2.513 6519.256 18 16384 3.032 5403.749 18 32768 5.266 6222.618 18 32768 6.133 5342.830 18 65536 10.476 6255.756 18 65536 12.522 5233.676 18 131072 21.804 6011.414 18 131072 24.546 5339.872 18 262144 43.288 6055.813 18 262144 55.901 4689.429 18 524288 108.712 4822.716 18 524288 100.500 5216.790 18 1048576 172.536 6077.437 18 1048576 201.255 5210.190 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4763.256 328.965 6542.220 4219.010 209.715 5417.808 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 19 4 0.011 364.722 19 4 0.018 223.696 19 8 0.011 729.444 19 8 0.006 1342.177 19 16 0.013 1220.161 19 16 0.008 2033.602 19 32 0.016 2003.250 19 32 0.012 2631.720 19 64 0.022 2917.777 19 64 0.020 3195.660 19 128 0.027 4751.070 19 128 0.034 3754.342 19 256 0.046 5563.429 19 256 0.059 4347.133 19 512 0.087 5899.680 19 512 0.108 4740.582 19 1024 0.167 6135.668 19 1024 0.206 4965.280 19 2048 0.325 6302.226 19 2048 0.402 5094.860 19 4096 0.643 6372.355 19 4096 0.805 5088.824 19 8192 1.345 6091.072 19 8192 1.577 5195.001 19 16384 2.601 6299.338 19 16384 3.190 5135.985 19 32768 5.540 5914.660 19 32768 6.455 5076.418 19 65536 10.958 5980.677 19 65536 13.213 4959.904 19 131072 21.785 6016.611 19 131072 26.547 4937.320 19 262144 43.772 5988.854 19 262144 53.182 4929.197 19 524288 90.693 5780.909 19 524288 111.182 4715.585 19 1048576 206.889 5068.304 19 1048576 217.273 4826.076 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4705.274 364.722 6372.355 4062.809 223.696 5195.001 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 20 4 0.011 364.722 20 4 0.020 199.729 20 8 0.011 729.444 20 8 0.007 1157.049 20 16 0.012 1315.860 20 16 0.009 1813.753 20 32 0.015 2130.440 20 32 0.012 2684.355 20 64 0.022 2886.403 20 64 0.022 2917.777 20 128 0.028 4549.753 20 128 0.035 3652.183 20 256 0.051 5017.485 20 256 0.062 4129.776 20 512 0.091 5621.685 20 512 0.115 4455.360 20 1024 0.172 5956.959 20 1024 0.218 4693.953 20 2048 0.415 4936.744 20 2048 0.424 4831.234 20 4096 0.668 6131.288 20 4096 0.830 4935.326 20 8192 1.359 6028.024 20 8192 1.613 5078.294 20 16384 2.503 6545.959 20 16384 3.007 5448.737 20 32768 5.249 6242.685 20 32768 6.218 5269.899 20 65536 10.269 6381.972 20 65536 12.760 5136.081 20 131072 21.081 6217.550 20 131072 28.708 4565.699 20 262144 44.238 5925.753 20 262144 50.938 5146.346 20 524288 86.000 6096.375 20 524288 102.432 5118.400 20 1048576 175.035 5990.665 20 1048576 216.755 4837.611 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4687.882 364.722 6545.959 4003.766 199.729 5448.737 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 21 4 0.011 364.722 21 4 0.022 182.361 21 8 0.012 657.930 21 8 0.008 1016.801 21 16 0.013 1220.161 21 16 0.012 1342.177 21 32 0.016 1973.790 21 32 0.012 2684.355 21 64 0.022 2886.403 21 64 0.020 3195.660 21 128 0.031 4129.776 21 128 0.037 3463.683 21 256 0.049 5212.339 21 256 0.063 4067.204 21 512 0.089 5741.935 21 512 0.114 4492.644 21 1024 0.171 5990.191 21 1024 0.221 4633.190 21 2048 0.329 6224.590 21 2048 0.472 4340.543 21 4096 0.674 6077.067 21 4096 0.840 4876.489 21 8192 1.314 6234.756 21 8192 1.700 4819.038 21 16384 2.628 6234.756 21 16384 3.449 4750.413 21 32768 5.505 5952.573 21 32768 6.843 4788.480 21 65536 11.437 5730.204 21 65536 19.555 3351.352 21 131072 31.330 4183.611 21 131072 28.253 4639.211 21 262144 44.814 5849.617 21 262144 55.543 4719.663 21 524288 89.648 5848.295 21 524288 112.133 4675.590 21 1048576 180.525 5808.486 21 1048576 227.381 4611.538 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4543.221 364.722 6234.756 3718.442 182.361 4876.489 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 22 4 0.025 159.783 22 4 0.007 559.241 22 8 0.011 729.444 22 8 0.006 1342.177 22 16 0.013 1242.757 22 16 0.008 1973.790 22 32 0.016 2003.250 22 32 0.012 2631.720 22 64 0.023 2796.203 22 64 0.021 3016.129 22 128 0.034 3780.781 22 128 0.036 3555.437 22 256 0.048 5341.999 22 256 0.062 4129.776 22 512 0.087 5899.680 22 512 0.114 4492.644 22 1024 0.169 6057.782 22 1024 0.218 4699.089 22 2048 0.326 6283.785 22 2048 0.425 4817.686 22 4096 0.658 6224.590 22 4096 0.835 4905.731 22 8192 1.300 6302.226 22 8192 1.660 4935.326 22 16384 2.564 6390.132 22 16384 3.568 4592.013 22 32768 5.335 6141.974 22 32768 6.945 4718.124 22 65536 10.827 6052.980 22 65536 13.860 4728.431 22 131072 21.590 6070.960 22 131072 31.376 4177.444 22 262144 44.637 5872.801 22 262144 55.876 4691.550 22 524288 92.571 5663.645 22 524288 115.136 4553.635 22 1048576 178.900 5861.241 22 1048576 225.100 4658.267 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4677.685 159.783 6390.132 3851.485 559.241 4935.326 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 23 4 0.024 166.111 23 4 0.006 671.089 23 8 0.010 798.915 23 8 0.007 1118.481 23 16 0.013 1242.757 23 16 0.009 1766.023 23 32 0.016 2003.250 23 32 0.013 2440.322 23 64 0.023 2796.203 23 64 0.021 3050.403 23 128 0.030 4260.880 23 128 0.039 3293.687 23 256 0.052 4925.421 23 256 0.066 3876.324 23 512 0.092 5563.429 23 512 0.119 4303.574 23 1024 0.171 5990.191 23 1024 0.230 4450.743 23 2048 0.336 6096.476 23 2048 0.448 4571.546 23 4096 0.663 6177.587 23 4096 0.885 4628.198 23 8192 1.352 6058.850 23 8192 1.746 4692.030 23 16384 2.743 5973.010 23 16384 3.539 4629.757 23 32768 5.515 5941.508 23 32768 7.175 4566.837 23 65536 11.015 5949.738 23 65536 14.265 4594.162 23 131072 22.776 5754.858 23 131072 28.993 4520.832 23 262144 45.285 5788.762 23 262144 69.587 3767.141 23 524288 94.950 5521.730 23 524288 116.616 4495.849 23 1048576 192.679 5442.090 23 1048576 236.536 4433.050 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4550.093 166.111 6177.587 3677.371 671.089 4692.030 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 24 4 0.020 199.729 24 4 0.006 645.278 24 8 0.008 1016.801 24 8 0.006 1342.177 24 16 0.008 2033.602 24 16 0.007 2314.099 24 32 0.011 2917.777 24 32 0.011 2917.777 24 64 0.017 3780.781 24 64 0.019 3355.443 24 128 0.024 5315.554 24 128 0.034 3754.342 24 256 0.041 6242.685 24 256 0.059 4347.133 24 512 0.078 6567.228 24 512 0.106 4836.675 24 1024 0.148 6916.211 24 1024 0.199 5143.673 24 2048 0.290 7064.091 24 2048 0.433 4730.140 24 4096 0.573 7149.342 24 4096 0.751 5453.927 24 8192 1.150 7124.142 24 8192 1.495 5479.148 24 16384 2.300 7123.404 24 16384 2.999 5463.032 24 32768 4.770 6869.543 24 32768 6.049 5417.167 24 65536 9.664 6781.416 24 65536 12.041 5442.696 24 131072 19.633 6676.088 24 131072 24.377 5376.900 24 262144 40.004 6552.942 24 262144 49.243 5323.480 24 524288 80.309 6528.391 24 524288 98.836 5304.629 24 1048576 162.033 6471.370 24 1048576 197.713 5303.529 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 5438.479 199.729 7149.342 4313.223 645.278 5479.148 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 25 4 0.022 182.361 25 4 0.007 559.241 25 8 0.010 798.915 25 8 0.006 1342.177 25 16 0.012 1315.860 25 16 0.008 1973.790 25 32 0.015 2164.802 25 32 0.012 2684.355 25 64 0.022 2917.777 25 64 0.020 3195.660 25 128 0.030 4260.880 25 128 0.040 3214.796 25 256 0.051 5017.485 25 256 0.070 3664.648 25 512 0.092 5563.429 25 512 0.126 4059.515 25 1024 0.180 5688.698 25 1024 0.257 3984.200 25 2048 0.390 5250.571 25 2048 0.490 4180.017 25 4096 0.712 5751.546 25 4096 1.001 4092.394 25 8192 1.492 5490.530 25 8192 1.987 4122.839 25 16384 2.950 5553.538 25 16384 4.322 3790.792 25 32768 8.190 4000.901 25 32768 10.830 3025.624 25 65536 16.688 3927.164 25 65536 19.736 3320.624 25 131072 23.150 5661.865 25 131072 30.497 4297.889 25 262144 46.415 5647.818 25 262144 60.194 4354.984 25 524288 93.814 5588.582 25 524288 122.062 4295.261 25 1048576 198.730 5276.385 25 1048576 248.694 4216.327 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4213.637 182.361 5751.546 3388.165 559.241 4354.984 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 26 4 0.023 174.763 26 4 0.010 399.458 26 8 0.009 906.877 26 8 0.007 1118.481 26 16 0.011 1458.888 26 16 0.009 1766.023 26 32 0.014 2274.877 26 32 0.012 2684.355 26 64 0.020 3195.660 26 64 0.020 3234.162 26 128 0.029 4436.950 26 128 0.039 3273.603 26 256 0.049 5212.339 26 256 0.071 3603.160 26 512 0.091 5636.440 26 512 0.127 4036.623 26 1024 0.172 5956.959 26 1024 0.249 4113.953 26 2048 0.385 5318.845 26 2048 0.479 4275.727 26 4096 0.669 6122.548 26 4096 0.906 4521.018 26 8192 1.354 6049.250 26 8192 1.823 4493.819 26 16384 2.691 6088.374 26 16384 3.674 4459.408 26 32768 5.523 5933.044 26 32768 7.694 4258.900 26 65536 11.454 5721.736 26 65536 14.805 4426.589 26 131072 22.657 5785.076 26 131072 30.014 4367.023 26 262144 46.408 5648.689 26 262144 71.697 3656.276 26 524288 96.205 5449.696 26 524288 123.173 4256.517 26 1048576 185.871 5641.414 26 1048576 248.406 4221.216 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4579.601 174.763 6122.548 3535.069 399.458 4521.018 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 27 4 0.008 493.448 27 4 0.020 199.729 27 8 0.009 883.011 27 8 0.006 1290.555 27 16 0.011 1458.888 27 16 0.008 2033.602 27 32 0.015 2130.440 27 32 0.012 2631.720 27 64 0.021 3050.403 27 64 0.020 3195.660 27 128 0.031 4129.776 27 128 0.039 3273.603 27 256 0.052 4925.421 27 256 0.075 3408.704 27 512 0.094 5450.466 27 512 0.140 3658.405 27 1024 0.206 4971.027 27 1024 0.251 4082.669 27 2048 0.346 5920.010 27 2048 0.529 3871.084 27 4096 0.695 5893.609 27 4096 0.993 4124.819 27 8192 1.500 5461.729 27 8192 2.000 4096.297 27 16384 2.801 5849.462 27 16384 3.853 4252.443 27 32768 5.827 5623.525 27 32768 7.872 4162.546 27 65536 11.600 5649.763 27 65536 15.850 4134.746 27 131072 23.635 5545.695 27 131072 31.953 4102.012 27 262144 46.996 5577.993 27 262144 63.669 4117.296 27 524288 93.226 5623.841 27 524288 145.442 3604.791 27 1048576 191.302 5481.258 27 1048576 265.610 3947.803 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4427.356 493.448 5920.010 3378.341 199.729 4252.443 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 28 4 0.008 508.400 28 4 0.021 190.650 28 8 0.008 1016.801 28 8 0.006 1342.177 28 16 0.009 1766.023 28 16 0.008 1973.790 28 32 0.012 2684.355 28 32 0.011 2917.777 28 64 0.019 3397.917 28 64 0.019 3355.443 28 128 0.029 4400.581 28 128 0.037 3463.683 28 256 0.050 5137.521 28 256 0.075 3408.704 28 512 0.089 5757.329 28 512 0.133 3855.446 28 1024 0.171 5990.191 28 1024 0.249 4113.953 28 2048 0.328 6247.225 28 2048 0.471 4347.133 28 4096 0.648 6320.776 28 4096 0.926 4423.241 28 8192 1.359 6028.024 28 8192 1.882 4353.191 28 16384 2.592 6321.357 28 16384 6.017 2722.965 28 32768 7.203 4549.302 28 32768 8.198 3997.061 28 65536 11.472 5712.698 28 65536 15.711 4171.327 28 131072 21.558 6079.957 28 131072 30.788 4257.218 28 262144 44.078 5947.260 28 262144 60.621 4324.308 28 524288 90.132 5816.891 28 524288 124.200 4221.325 28 1048576 185.609 5649.378 28 1048576 243.970 4297.973 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4701.684 508.400 6321.357 3459.861 190.650 4423.241 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 29 4 0.009 441.506 29 4 0.020 199.729 29 8 0.008 986.895 29 8 0.006 1342.177 29 16 0.010 1597.830 29 16 0.008 1973.790 29 32 0.014 2274.877 29 32 0.012 2684.355 29 64 0.022 2886.403 29 64 0.021 3050.403 29 128 0.033 3862.381 29 128 0.036 3555.437 29 256 0.054 4751.070 29 256 0.077 3334.602 29 512 0.100 5125.259 29 512 0.146 3503.236 29 1024 0.184 5563.429 29 1024 0.268 3821.145 29 2048 0.355 5768.929 29 2048 0.518 3953.030 29 4096 0.701 5843.493 29 4096 1.007 4067.204 29 8192 1.448 5657.787 29 8192 2.034 4027.633 29 16384 2.842 5765.057 29 16384 3.962 4135.244 29 32768 5.811 5638.984 29 32768 8.033 4079.155 29 65536 12.247 5351.151 29 65536 16.133 4062.215 29 131072 23.310 5623.007 29 131072 32.444 4039.946 29 262144 49.756 5268.585 29 262144 70.810 3702.084 29 524288 95.027 5517.255 29 524288 134.573 3895.938 29 1048576 190.896 5492.917 29 1048576 270.996 3869.340 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4390.359 441.506 5843.493 3331.403 199.729 4135.244 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 30 4 0.022 180.400 30 4 0.007 578.525 30 8 0.008 1016.801 30 8 0.006 1342.177 30 16 0.009 1766.023 30 16 0.008 2033.602 30 32 0.013 2485.513 30 32 0.012 2631.720 30 64 0.021 3050.403 30 64 0.020 3195.660 30 128 0.036 3555.437 30 128 0.035 3652.183 30 256 0.058 4400.581 30 256 0.072 3555.437 30 512 0.101 5064.820 30 512 0.152 3371.246 30 1024 0.188 5450.466 30 1024 0.278 3683.505 30 2048 0.360 5688.698 30 2048 0.526 3893.896 30 4096 0.725 5649.414 30 4096 1.045 3919.660 30 8192 1.403 5838.528 30 8192 2.010 4075.405 30 16384 3.107 5273.538 30 16384 4.021 4074.438 30 32768 5.783 5666.184 30 32768 8.103 4043.868 30 65536 11.662 5619.616 30 65536 16.137 4061.255 30 131072 23.933 5476.637 30 131072 39.744 3297.895 30 262144 68.699 3815.841 30 262144 75.214 3485.313 30 524288 95.427 5494.138 30 524288 132.557 3955.185 30 1048576 190.888 5493.143 30 1048576 263.550 3978.660 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4262.431 180.400 5838.528 3306.823 578.525 4075.405 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 31 4 0.021 190.650 31 4 0.007 578.525 31 8 0.008 1016.801 31 8 0.006 1290.555 31 16 0.009 1813.753 31 16 0.008 2033.602 31 32 0.014 2274.877 31 32 0.012 2684.355 31 64 0.024 2684.355 31 64 0.022 2917.777 31 128 0.041 3121.343 31 128 0.036 3555.437 31 256 0.070 3664.648 31 256 0.068 3754.342 31 512 0.113 4530.556 31 512 0.145 3532.045 31 1024 0.203 5041.041 31 1024 0.307 3334.602 31 2048 0.402 5094.860 31 2048 0.566 3618.338 31 4096 0.730 5610.669 31 4096 1.138 3599.386 31 8192 1.440 5688.698 31 8192 2.126 3853.285 31 16384 2.896 5657.321 31 16384 4.177 3922.345 31 32768 5.861 5590.813 31 32768 8.642 3791.629 31 65536 12.237 5355.529 31 65536 16.870 3884.761 31 131072 24.055 5448.845 31 131072 35.717 3669.736 31 262144 49.634 5281.543 31 262144 69.588 3767.076 31 524288 119.310 4394.338 31 524288 136.005 3854.919 31 1048576 193.346 5423.313 31 1048576 274.079 3825.815 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4099.155 190.650 5688.698 3235.186 578.525 3922.345 pack: unpack: bits size (B) time (µs) speed (B/µs) bits size (B) time (µs) speed (B/µs) 32 4 0.007 559.241 32 4 0.006 671.089 32 8 0.006 1342.177 32 8 0.006 1342.177 32 16 0.006 2684.355 32 16 0.006 2684.355 32 32 0.008 4067.204 32 32 0.009 3532.045 32 64 0.012 5263.440 32 64 0.013 4971.027 32 128 0.021 6032.257 32 128 0.017 7561.562 32 256 0.040 6391.320 32 256 0.028 9177.281 32 512 0.079 6487.866 32 512 0.053 9673.350 32 1024 0.155 6597.492 32 1024 0.103 9942.054 32 2048 0.309 6628.036 32 2048 0.203 10082.083 32 4096 0.631 6490.317 32 4096 0.395 10368.056 32 8192 1.263 6485.417 32 8192 0.785 10437.345 32 16384 4.268 3838.862 32 16384 1.607 10195.768 32 32768 8.527 3842.834 32 32768 3.496 9372.542 32 65536 17.183 3813.988 32 65536 6.936 9448.574 32 131072 29.931 4379.129 32 131072 14.026 9344.821 32 262144 49.555 5289.954 32 262144 32.951 7955.600 32 524288 98.477 5323.957 32 524288 75.011 6989.480 32 1048576 182.666 5740.399 32 1048576 141.556 7407.498 avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4803.066 559.241 6628.036 7429.300 671.089 10437.345 stats by bits per item pack: unpack: bits avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 1 4842.462 104.858 6675.683 6779.228 508.400 8992.342 2 5044.147 335.544 6770.392 6635.872 199.729 9168.709 3 5081.202 364.722 6689.980 6509.829 199.729 8462.990 4 4915.036 328.965 7104.991 6169.213 578.525 9062.307 5 5042.501 152.520 6781.081 6016.358 578.525 7938.024 6 4937.301 166.111 6825.534 5757.931 671.089 7847.377 7 4620.471 166.111 6356.018 5132.965 671.089 7153.808 8 5589.546 174.763 7543.302 7607.929 578.525 11025.105 9 4659.476 142.180 6426.435 4975.285 559.241 6702.378 10 4391.134 356.962 6233.625 4477.408 266.305 6439.231 11 4895.803 364.722 6622.926 4830.727 202.135 6501.370 12 5049.850 399.458 6907.869 5015.441 209.715 6801.215 13 4785.723 335.544 6591.164 4674.868 190.650 6105.142 14 4485.592 364.722 6400.845 4254.115 190.650 5965.491 15 4238.639 364.722 6486.641 4014.919 266.305 5809.898 16 6545.334 508.400 8751.844 7341.479 212.370 10330.649 17 4693.267 364.722 6415.186 4273.809 190.650 5524.074 18 4763.256 328.965 6542.220 4219.010 209.715 5417.808 19 4705.274 364.722 6372.355 4062.809 223.696 5195.001 20 4687.882 364.722 6545.959 4003.766 199.729 5448.737 21 4543.221 364.722 6234.756 3718.442 182.361 4876.489 22 4677.685 159.783 6390.132 3851.485 559.241 4935.326 23 4550.093 166.111 6177.587 3677.371 671.089 4692.030 24 5438.479 199.729 7149.342 4313.223 645.278 5479.148 25 4213.637 182.361 5751.546 3388.165 559.241 4354.984 26 4579.601 174.763 6122.548 3535.069 399.458 4521.018 27 4427.356 493.448 5920.010 3378.341 199.729 4252.443 28 4701.684 508.400 6321.357 3459.861 190.650 4423.241 29 4390.359 441.506 5843.493 3331.403 199.729 4135.244 30 4262.431 180.400 5838.528 3306.823 578.525 4075.405 31 4099.155 190.650 5688.698 3235.186 578.525 3922.345 32 4803.066 559.241 6628.036 7429.300 671.089 10437.345 stats by size pack: unpack: size(B) avg (B/µs) min (B/µs) max (B/µs) avg (B/µs) min (B/µs) max (B/µs) 4 302.330 104.858 559.241 385.678 182.361 671.089 8 802.931 399.458 1342.177 1226.007 1016.801 1342.177 16 1405.531 664.444 2684.355 2073.472 1342.177 2684.355 32 2203.358 1147.160 4067.204 2875.072 2440.322 3532.045 64 3076.292 1731.842 5263.440 3549.073 2917.777 4971.027 128 4745.598 3121.343 6795.834 4494.340 3214.796 7561.562 256 5520.534 3664.648 7304.366 5218.753 3334.602 9177.281 512 5991.834 4530.556 8103.712 5715.055 3371.246 9673.350 1024 6201.302 4971.027 7823.256 5787.791 3334.602 9942.054 2048 6068.280 3738.005 8641.785 5852.055 3618.338 10082.083 4096 6266.326 4027.161 8751.844 6123.028 3599.386 10368.056 8192 6319.352 4907.833 8696.466 6063.015 3527.694 10821.965 16384 6088.496 3571.884 8637.441 6067.600 2722.965 11025.105 32768 6016.836 3842.834 7980.429 6093.271 3025.624 10317.465 65536 6030.547 3813.988 8192.105 6029.649 3320.624 10642.632 131072 5934.375 3916.337 8375.189 5947.310 3297.895 10105.805 262144 5885.721 3815.841 8035.310 5914.568 3485.313 9971.267 524288 5929.542 4394.338 8021.914 5883.030 3604.791 10069.479 1048576 5853.084 4276.271 7944.477 5769.202 3825.815 8886.163 real 0m24.385s user 0m24.247s sys 0m0.049s