Skip to content

Instantly share code, notes, and snippets.

@lbe
Created February 21, 2022 05:24
Show Gist options
  • Save lbe/69799b34cc65afa195530ca33f33f30e to your computer and use it in GitHub Desktop.
Save lbe/69799b34cc65afa195530ca33f33f30e to your computer and use it in GitHub Desktop.
Macos Montery 12.2 on a 2018 Macbook Pro with a 6 Core I9, perl 5.34
In this case, all three runs resulted in a consistent sequence. Earlier runs resulted in _signature_scalar,
_array_unpack and _ref_direct having differen orders in some runs giving how little difference there is the
performance of each of these.
Rate _ref_unpack _ref_shift _signatures_array _signatures_ref _array_shift _ref_direct _array_unpack _signatures_scalar _array_direct
_ref_unpack 6720430/s -- -0% -8% -12% -16% -25% -27% -29% -65%
_ref_shift 6743088/s 0% -- -8% -12% -15% -25% -27% -29% -65%
_signatures_array 7309942/s 9% 8% -- -4% -8% -19% -21% -23% -62%
_signatures_ref 7639419/s 14% 13% 5% -- -4% -15% -17% -20% -60%
_array_shift 7968127/s 19% 18% 9% 4% -- -11% -14% -16% -59%
_ref_direct 8976661/s 34% 33% 23% 18% 13% -- -3% -6% -54%
_array_unpack 9233610/s 37% 37% 26% 21% 16% 3% -- -3% -52%
_signatures_scalar 9523810/s 42% 41% 30% 25% 20% 6% 3% -- -51%
_array_direct 19305019/s 187% 186% 164% 153% 142% 115% 109% 103% --
Rate _ref_shift _ref_unpack _signatures_ref _signatures_array _array_shift _ref_direct _array_unpack _signatures_scalar _array_direct
_ref_shift 6715917/s -- -1% -10% -11% -14% -28% -30% -30% -62%
_ref_unpack 6798097/s 1% -- -9% -10% -13% -27% -29% -30% -62%
_signatures_ref 7473842/s 11% 10% -- -1% -4% -20% -22% -23% -58%
_signatures_array 7518797/s 12% 11% 1% -- -4% -19% -21% -22% -58%
_array_shift 7824726/s 17% 15% 5% 4% -- -16% -18% -19% -56%
_ref_direct 9285051/s 38% 37% 24% 23% 19% -- -3% -4% -48%
_array_unpack 9569378/s 42% 41% 28% 27% 22% 3% -- -1% -46%
_signatures_scalar 9652510/s 44% 42% 29% 28% 23% 4% 1% -- -46%
_array_direct 17730496/s 164% 161% 137% 136% 127% 91% 85% 84% --
Rate _ref_shift _ref_unpack _signatures_ref _signatures_array _array_shift _ref_direct _signatures_scalar _array_unpack _array_direct
_ref_shift 6688963/s -- -3% -6% -9% -12% -26% -27% -28% -63%
_ref_unpack 6872852/s 3% -- -4% -7% -9% -24% -25% -26% -62%
_signatures_ref 7127584/s 7% 4% -- -3% -6% -21% -22% -23% -61%
_signatures_array 7380074/s 10% 7% 4% -- -2% -19% -19% -21% -59%
_array_shift 7564297/s 13% 10% 6% 2% -- -16% -17% -19% -58%
_ref_direct 9057971/s 35% 32% 27% 23% 20% -- -1% -2% -50%
_signatures_scalar 9132420/s 37% 33% 28% 24% 21% 1% -- -2% -49%
_array_unpack 9285051/s 39% 35% 30% 26% 23% 3% 2% -- -49%
_array_direct 18050542/s 170% 163% 153% 145% 139% 99% 98% 94% --
The following results were recorded on Debian Bullseye 11.2 on an HP DL360 Gen 6 Dual XEON, perl 5.32
Note the differing order of the methods relative to those on the Mac. I believe that most of this is probably due
differences between the clang compiler on the Mac and gcc on Linux
Rate _signatures_array _ref_shift _signatures_ref _array_shift _ref_unpack _signatures_scalar _array_unpack _ref_direct _array_direct
_signatures_array 3191829/s -- -1% -5% -6% -7% -19% -22% -32% -56%
_ref_shift 3227889/s 1% -- -4% -5% -6% -18% -21% -32% -56%
_signatures_ref 3374958/s 6% 5% -- -1% -2% -14% -17% -29% -54%
_array_shift 3409478/s 7% 6% 1% -- -1% -13% -17% -28% -53%
_ref_unpack 3449465/s 8% 7% 2% 1% -- -12% -16% -27% -53%
_signatures_scalar 3938558/s 23% 22% 17% 16% 14% -- -4% -17% -46%
_array_unpack 4089980/s 28% 27% 21% 20% 19% 4% -- -13% -44%
_ref_direct 4721435/s 48% 46% 40% 38% 37% 20% 15% -- -35%
_array_direct 7278020/s 128% 125% 116% 113% 111% 85% 78% 54% --
Rate _signatures_array _ref_shift _signatures_ref _ref_unpack _array_shift _signatures_scalar _array_unpack _ref_direct _array_direct
_signatures_array 3142678/s -- -4% -9% -10% -11% -19% -27% -37% -58%
_ref_shift 3277614/s 4% -- -5% -6% -8% -16% -24% -35% -56%
_signatures_ref 3435246/s 9% 5% -- -2% -3% -11% -20% -32% -54%
_ref_unpack 3496503/s 11% 7% 2% -- -1% -10% -19% -30% -53%
_array_shift 3548616/s 13% 8% 3% 1% -- -9% -18% -29% -53%
_signatures_scalar 3878976/s 23% 18% 13% 11% 9% -- -10% -23% -48%
_array_unpack 4315926/s 37% 32% 26% 23% 22% 11% -- -14% -43%
_ref_direct 5015045/s 60% 53% 46% 43% 41% 29% 16% -- -33%
_array_direct 7518797/s 139% 129% 119% 115% 112% 94% 74% 50% --
Rate _signatures_array _ref_shift _array_shift _signatures_ref _ref_unpack _signatures_scalar _array_unpack _ref_direct _array_direct
_signatures_array 3244646/s -- -2% -4% -6% -10% -19% -22% -38% -52%
_ref_shift 3306878/s 2% -- -2% -4% -8% -17% -20% -36% -51%
_array_shift 3365870/s 4% 2% -- -3% -7% -16% -19% -35% -51%
_signatures_ref 3462604/s 7% 5% 3% -- -4% -13% -16% -33% -49%
_ref_unpack 3607504/s 11% 9% 7% 4% -- -10% -13% -31% -47%
_signatures_scalar 3988831/s 23% 21% 19% 15% 11% -- -4% -23% -41%
_array_unpack 4144219/s 28% 25% 23% 20% 15% 4% -- -20% -39%
_ref_direct 5202914/s 60% 57% 55% 50% 44% 30% 26% -- -24%
_array_direct 6816633/s 110% 106% 103% 97% 89% 71% 64% 31% --
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment