Open nhorman opened 1 month ago
Below is slightly modified version of script provided by @nhorman. The summary of changes is as follows:
--terse
instead of -t
optionpkeyread
script needs slightly different handlingresults
subdirectory, you have to create the directory firstpkeread
tests we need to iterate over keys and formats. I've hacked this change into stuff from Niel, it's a dirty hac but sort of works.edit from Jun 10th: there was a script which was buggy. debuged version can be found at the next comment.
the loop which iterates over threads is wrong. it currently uses only 8 threads. this is the relict of my debugging effort which I used to roughly estimate the test run. Updated code below currently runs on both MacOSes. It iterates over all performance tools we have.
edit from jun 10th 2024: this is the version of run-perf.sh which worked for me. the results are found ./results directory once script is done. The version from Niel did 50 iterations, this version comes with 25 iterations for each tool invocation. You need to adjust TOOLS_PATH, OPENSSL_SRC so it matches your environement.
#!/bin/bash
set -x
CMD=$1
shift 1
BASEARGS=$1
TOOLS_PATH=/Users/sashan/tools.sashan/perf
OPENSSL_SRC=/Users/sashan/openssl/
CERT_DIR=$OPENSSL_SRC/test/certs
mkdir -p results
for TOOL in evp_fetch randbytes handshake sslnew newrawkey rsasign \
x509storeissuer providerdoall rwlocks pkeyread ; do
CMD=$TOOLS_PATH/$TOOL
if [ "$TOOL" == "handshake" -o "$TOOL" == "x509storeissuer" ]
then
BASEARGS=$CERT_DIR
else
BASEARGS=""
fi
for i in master 3.0 1.1.1
do
pushd `pwd`
cd $TOOLS_PATH
openssl.env $i;
make clean
make
popd
SUFFIX=$i
for j in 1 2 4 8 16 32 64
do
# format loop and key loops are hack. the thing is
# the script assumes we do have a single tool to
# perform particular test. Unfortunately this not
# the case for pkeyread which executes different
# tests according to command line options. So
# those two loops (format, key) iterate over
# options to exercise tests and capture results for
# pkeuread test.
for format in pem der ; do
for key in dh dhx dsa ec rsa x25519 ; do
declare -a USECS_ARRAY=()
for k in $(seq 1 1 25)
do
export EVP_FETCH_TYPE=MD:MD5
ARGS="--terse $BASEARGS $j"
# also note pkeyread has slightly different output, which needs
# to be rectified in dedicated branch by awk/sed.
if [ "$TOOL" == "pkeyread" ] ; then
echo "Running $CMD against $i with $j threads key $key, format $format, iteration $k"
OUTPUT=$(/bin/sh -c "LD_LIBRARY_PATH=/Users/sashan/openssl.binaries/openssl-$i/lib $CMD -f $format -k $key -t $j")
USECS=$(echo $OUTPUT | awk '{print $3}' |sed -e 's/us$//g')
else
echo "Running $CMD against $i with $j threads, iteration $k"
OUTPUT=$(/bin/sh -c "LD_LIBRARY_PATH=/Users/sashan/openssl.binaries/openssl-$i/lib $CMD $ARGS")
USECS=$(echo $OUTPUT | awk '{print $1}')
fi
USECS_ARRAY+=($USECS)
done
# this stuff comes from Niel I'm leaving it untouched
# as my math/stats is weak.
TUSECS=0
for value in "${USECS_ARRAY[@]}"
do
TUSECS=$(dc -e"$value $TUSECS + p")
done
AVG_USECS=$(dc -e"6 k $TUSECS ${#USECS_ARRAY[@]} / p")
declare -a USEC_DEV_ARRAY=()
for value in "${USECS_ARRAY[@]}"
do
DEVIATION=$(dc -e"6 k $value $AVG_USECS - p" | sed -e"s/-/_/g")
DEVIATION=$(dc -e"6 k $DEVIATION $DEVIATION * p")
USEC_DEV_ARRAY+=($DEVIATION)
done
echo ${USEC_DEV_ARRAY[@]}
SUM_DEVIATIONS=0
for value in "${USEC_DEV_ARRAY[@]}"
do
SUM_DEVIATIONS=$(dc -e"6 k $value $SUM_DEVIATIONS + p")
done
STD_DEVIATION=$(dc -e"6 k $SUM_DEVIATIONS ${#USECS_ARRAY[@]} 1 - / v p")
if [ "$TOOL" == "pkeyread" ] ; then
echo "$j $AVG_USECS $STD_DEVIATION" >> results/$TOOL.$key.$format.$SUFFIX
else
echo "$j $AVG_USECS $STD_DEVIATION" >> results/$TOOL.$SUFFIX
fi
# only pkeyread needs to keep going through all keys
if [ "$TOOL" != "pkeyread" ] ; then
break; # key
fi
done #key
# only pkeyread needs to keep going through all formats
if [ "$TOOL" != "pkeyread" ] ; then
break; # format
fi
done #format
done # thredas
done # version
done # tool
Results from linux x86_64:
thread count | number of iterations | openssl 1.1.1 per operation avg usec | 1.1.1 std dev | openssl 3.0 per operation avg usec | 3.0 std dev | openssl 3.1 per operation avg usec | 3.1 std dev | openssl 3.2 per operation avg usec | 3.2 std dev | openssl 3.3 per operation avg usec | 3.3 std dev | openssl master per operation avg usec | master std dev |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 20 | N/A | N/A | .243486 | 0 | .123404 | 0 | .125677 | .001000 | .126979 | 0 | .126502 | .001732 |
2 | 20 | N/A | N/A | .704476 | .042743 | .419351 | .027037 | .452826 | .016340 | .422580 | .025553 | .360000 | .051176 |
4 | 20 | N/A | N/A | 2.260913 | .274131 | .870317 | .026172 | .883020 | .022000 | .896154 | .023151 | .868581 | .022891 |
8 | 20 | N/A | N/A | 6.806402 | .381472 | 2.138642 | .218467 | 1.875936 | .215575 | 1.974716 | .227525 | 1.811663 | .180988 |
16 | 20 | N/A | N/A | 13.840573 | .609219 | 4.253584 | .452609 | 4.196466 | .569612 | 3.987304 | .465942 | 3.959855 | .492218 |
32 | 20 | N/A | N/A | 24.696751 | .951850 | 7.998405 | .887415 | 8.413182 | .688326 | 8.559601 | .619138 | 7.800762 | .715181 |
64 | 20 | N/A | N/A | 45.606433 | 2.660230 | 14.607361 | 1.362538 | 16.338117 | 1.719713 | 15.947229 | 1.579854 | 15.157291 | 1.586333 |
128 | 20 | N/A | N/A | 91.930684 | 2.910952 | 27.502788 | 1.142453 | 29.040132 | 1.219169 | 29.210566 | .907218 | 27.335172 | 1.287565 |
thread count | number of iterations | openssl 1.1.1 per operation avg usec | 1.1.1 std dev | openssl 3.0 per operation avg usec | 3.0 std dev | openssl 3.1 per operation avg usec | 3.1 std dev | openssl 3.2 per operation avg usec | 3.2 std dev | openssl 3.3 per operation avg usec | 3.3 std dev | openssl master per operation avg usec | master std dev |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 20 | .784748 | .004898 | .701072 | .006244 | .536025 | .005830 | .376813 | .005744 | .373586 | .004123 | .377904 | .004795 |
2 | 20 | .931830 | .019723 | 1.127062 | .026702 | .791333 | .032341 | .436255 | .008544 | .440112 | .009486 | .446011 | .010392 |
4 | 20 | 1.069898 | .044136 | 1.807690 | .024248 | 1.400260 | .036359 | .505732 | .025139 | .501737 | .023685 | .496096 | .013490 |
8 | 20 | 3.291035 | .341499 | 3.432947 | .162249 | 3.463844 | .344688 | .939772 | .081719 | .939681 | .086226 | .917963 | .073000 |
16 | 20 | 9.454166 | .519102 | 7.148176 | .234243 | 6.866830 | .388048 | 1.923636 | .137669 | 1.892326 | .130980 | 1.899463 | .132204 |
32 | 20 | 20.232543 | .733135 | 15.176948 | .672649 | 15.053895 | .565734 | 4.181749 | .356178 | 4.121765 | .207108 | 4.138167 | .256169 |
64 | 20 | 41.562752 | 1.596420 | 43.574004 | 1.214741 | 42.428801 | 2.009129 | 7.679429 | .384352 | 7.776608 | .386891 | 7.673164 | .402134 |
128 | 20 | 1648.875358 | 202.149546 | 1788.267415 | 476.000146 | 1733.998777 | 492.926268 | 14.569299 | 1.467719 | 15.177463 | 1.289802 | 14.667983 | 1.321493 |
thread count | number of iterations | openssl 1.1.1 per operation avg usec | 1.1.1 std dev | openssl 3.0 per operation avg usec | 3.0 std dev | openssl 3.1 per operation avg usec | 3.1 std dev | openssl 3.2 per operation avg usec | 3.2 std dev | openssl 3.3 per operation avg usec | 3.3 std dev | openssl master per operation avg usec | master std dev |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 20 | 897.967605 | 2.225298 | 1166.698955 | 1.343342 | 1065.342370 | 1.474801 | 1041.238430 | 1.256190 | 1029.675105 | 1.223939 | 1039.280240 | 1.313018 |
2 | 20 | 907.298395 | 3.260319 | 1215.395395 | 16.536096 | 1109.004740 | 3.031915 | 1080.615545 | 3.851716 | 1071.357675 | 4.178266 | 1062.513715 | 3.164873 |
4 | 20 | 955.728975 | 4.542752 | 1610.876035 | 35.069862 | 1186.131345 | 2.726274 | 1150.725100 | 2.553094 | 1134.629680 | 5.805519 | 1135.386905 | 3.078813 |
8 | 20 | 994.608785 | 2.265746 | 2982.657390 | 181.681671 | 1266.741120 | 20.665656 | 1224.781205 | 15.830346 | 1240.021220 | 16.437957 | 1260.183685 | 11.176064 |
16 | 20 | 1099.061985 | 6.944712 | 7151.454595 | 491.566248 | 1725.972735 | 25.191207 | 1587.731740 | 54.996907 | 1566.368475 | 37.450252 | 1602.697430 | 47.361537 |
32 | 20 | 1473.496186 | 39.845350 | 12955.116239 | 819.633908 | 2571.882513 | 65.517615 | 2260.928619 | 56.013888 | 2153.508995 | 29.507217 | 2292.641548 | 39.426555 |
64 | 20 | 1914.986922 | 48.259338 | 23695.823273 | 641.671593 | 4517.925134 | 148.549389 | 3659.136211 | 122.768223 | 3692.361465 | 130.239969 | 3863.194625 | 132.865528 |
128 | 20 | 3960.796385 | 151.399448 | 57510.820441 | 1879.318029 | 10188.726547 | 349.694482 | 7275.108326 | 123.152944 | 7153.238108 | 135.704018 | 7538.782184 | 255.137023 |
thread count | number of iterations | openssl 1.1.1 per operation avg usec | 1.1.1 std dev | openssl 3.0 per operation avg usec | 3.0 std dev | openssl 3.1 per operation avg usec | 3.1 std dev | openssl 3.2 per operation avg usec | 3.2 std dev | openssl 3.3 per operation avg usec | 3.3 std dev | openssl master per operation avg usec | master std dev |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 20 | 1.578622 | .007000 | 1.444965 | .008544 | 1.449492 | .032140 | 2.167341 | .015099 | 2.252070 | .019519 | 2.223618 | .011000 |
2 | 20 | 1.762163 | .060613 | 2.115975 | .168101 | 1.766006 | .041880 | 2.613258 | .045803 | 2.998732 | .059799 | 2.947290 | .071365 |
4 | 20 | 5.939933 | .135048 | 5.098922 | .181160 | 3.011874 | .097483 | 4.263507 | .131901 | 4.048158 | .103363 | 4.037002 | .114568 |
8 | 20 | 19.277297 | .972452 | 19.802931 | 1.072344 | 6.013077 | .148616 | 8.890266 | .569149 | 9.016344 | .230911 | 9.142283 | .271775 |
16 | 20 | 35.177239 | 1.380442 | 44.644090 | 1.670526 | 14.297900 | .655475 | 16.669751 | .736685 | 18.383768 | .537734 | 18.072226 | .664584 |
32 | 20 | 88.858023 | 2.675930 | 92.063144 | 3.361828 | 29.151799 | 1.194109 | 36.081559 | 1.855390 | 39.487740 | 1.887723 | 40.135090 | 1.248522 |
64 | 20 | 185.244815 | 5.741851 | 201.726114 | 8.614712 | 52.655954 | 2.001395 | 65.318045 | 2.645729 | 68.685541 | 2.575200 | 70.931132 | 3.260461 |
128 | 20 | 3812.022276 | 251.311062 | 2672.399144 | 367.723091 | 95.629072 | 3.002067 | 116.782440 | 5.447722 | 126.393361 | 4.265855 | 126.291732 | 5.819844 |
thread count | number of iterations | openssl 1.1.1 per operation avg usec | 1.1.1 std dev | openssl 3.0 per operation avg usec | 3.0 std dev | openssl 3.1 per operation avg usec | 3.1 std dev | openssl 3.2 per operation avg usec | 3.2 std dev | openssl 3.3 per operation avg usec | 3.3 std dev | openssl master per operation avg usec | master std dev |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 20 | .111917 | .004582 | 2.770079 | .010440 | 2.273060 | .007211 | 2.156657 | .011000 | 1.722392 | .024062 | 1.721051 | .016522 |
2 | 20 | .119483 | .007810 | 4.693164 | .249685 | 3.474624 | .258110 | 3.274195 | .251288 | 2.574186 | .109219 | 2.520522 | .091640 |
4 | 20 | .133212 | .009327 | 6.642451 | .460789 | 5.159560 | .283853 | 4.369389 | .363505 | 3.440170 | .258791 | 3.367448 | .250089 |
8 | 20 | .153734 | .019026 | 14.205711 | 2.016568 | 11.107342 | .866393 | 6.808856 | .977585 | 5.217891 | .936950 | 4.711515 | .536432 |
16 | 20 | .191715 | .021633 | 31.596720 | 7.715760 | 25.064733 | 1.663495 | 11.089907 | 2.154340 | 8.819457 | 1.260351 | 8.773756 | 1.501707 |
32 | 20 | .243405 | .046776 | 59.345766 | 5.395573 | 57.746206 | 5.757416 | 19.646013 | 4.844942 | 16.597077 | 2.903826 | 16.003254 | 2.887616 |
64 | 20 | .332723 | .043646 | 132.879657 | 25.844835 | 135.402203 | 7.512421 | 39.193370 | 5.876775 | 34.446957 | 6.312611 | 34.758772 | 5.747280 |
128 | 20 | .198936 | .058608 | 5853.978907 | 1834.220988 | 4706.163554 | 1170.776920 | 76.938808 | 8.255037 | 72.977545 | 5.636181 | 72.838476 | 5.129213 |
thread count | number of iterations | openssl 1.1.1 per operation avg usec | 1.1.1 std dev | openssl 3.0 per operation avg usec | 3.0 std dev | openssl 3.1 per operation avg usec | 3.1 std dev | openssl 3.2 per operation avg usec | 3.2 std dev | openssl 3.3 per operation avg usec | 3.3 std dev | openssl master per operation avg usec | master std dev |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 20 | 35.755469 | .371837 | 36.492999 | .051039 | 35.689345 | .069021 | 36.003165 | .105104 | 36.058115 | .111350 | 36.348527 | .216282 |
2 | 20 | 36.625809 | .287673 | 37.890363 | .273043 | 37.093691 | .274899 | 37.837589 | .169793 | 37.969191 | .115637 | 37.743014 | .148104 |
4 | 20 | 40.664752 | .765316 | 42.728531 | 2.174464 | 41.450107 | 1.039285 | 41.971614 | .491591 | 41.938001 | .314469 | 41.951530 | .361224 |
8 | 20 | 49.219190 | 1.072657 | 51.627973 | 1.652196 | 50.250302 | 1.196760 | 49.700612 | .686017 | 49.662666 | 1.143240 | 50.279787 | 1.187827 |
16 | 20 | 73.685610 | 3.834260 | 71.460576 | 2.756623 | 70.417453 | 2.129127 | 68.842100 | 1.302427 | 69.405031 | 1.797244 | 69.135970 | 1.095780 |
32 | 20 | 491.577672 | 204.868476 | 147.846465 | 4.080327 | 145.936095 | 2.652486 | 146.577009 | 4.279461 | 148.707091 | 8.406270 | 164.924943 | 67.836254 |
64 | 20 | 1636.137541 | 11.298241 | 1497.601766 | 50.506319 | 1481.698011 | 42.866253 | 1475.452696 | 38.181185 | 1593.917065 | 50.647882 | 1620.549756 | 32.209631 |
128 | 20 | 3283.436327 | 19.847019 | 3103.346998 | 135.409776 | 3056.153777 | 132.244461 | 2999.346676 | 97.922071 | 3271.346923 | 24.845703 | 3286.893255 | 24.318498 |
thread count | number of iterations | openssl 1.1.1 per operation avg usec | 1.1.1 std dev | openssl 3.0 per operation avg usec | 3.0 std dev | openssl 3.1 per operation avg usec | 3.1 std dev | openssl 3.2 per operation avg usec | 3.2 std dev | openssl 3.3 per operation avg usec | 3.3 std dev | openssl master per operation avg usec | master std dev |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 20 | 1.017828 | .019157 | 2.787840 | .019621 | 2.649109 | .024859 | 2.649838 | .023086 | 2.667246 | .034741 | 1.227468 | .006928 |
2 | 20 | 1.166389 | .033421 | 4.010627 | .056780 | 3.563404 | .087028 | 3.770803 | .053000 | 3.519093 | .084787 | 1.693910 | .061530 |
4 | 20 | 1.604414 | .054101 | 5.723358 | .607031 | 4.504791 | .071091 | 6.607145 | .769779 | 5.447681 | .344100 | 2.876898 | .081651 |
8 | 20 | 4.946803 | .227778 | 9.926157 | .683994 | 7.140090 | .499841 | 11.906435 | 2.273988 | 10.625887 | .950738 | 7.358870 | .217393 |
16 | 20 | 13.505683 | .483910 | 22.122016 | 1.246412 | 13.477602 | 1.005203 | 26.962361 | 1.976453 | 25.803594 | 2.231513 | 17.596014 | 2.038236 |
32 | 20 | 28.884046 | .531684 | 46.018785 | 1.665254 | 31.141246 | .862524 | 138.089082 | 7.437566 | 119.031874 | 20.755009 | 93.097021 | 5.010768 |
64 | 20 | 58.490383 | 1.065191 | 109.833724 | 2.688914 | 80.696906 | 2.600861 | 337.535540 | 7.981681 | 312.286783 | 7.286363 | 224.049457 | 8.074328 |
128 | 20 | 1026.032618 | 214.713349 | 500.291567 | 183.364277 | 440.479222 | 114.587383 | 739.875957 | 64.487284 | 715.929613 | 95.910274 | 540.320115 | 7.075483 |
thread count | number of iterations | openssl 1.1.1 per operation avg usec | 1.1.1 std dev | openssl 3.0 per operation avg usec | 3.0 std dev | openssl 3.1 per operation avg usec | 3.1 std dev | openssl 3.2 per operation avg usec | 3.2 std dev | openssl 3.3 per operation avg usec | 3.3 std dev | openssl master per operation avg usec | master std dev |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 20 | N/A | N/A | .312843 | .045000 | .219697 | .042178 | .186198 | .042320 | .174785 | .045088 | .201104 | .032893 |
2 | 20 | N/A | N/A | 1.567398 | .104288 | 1.234398 | .107363 | .744180 | .068891 | .804646 | .115325 | .778763 | .101375 |
4 | 20 | N/A | N/A | 3.619061 | .296585 | 2.756703 | .222528 | 1.474103 | .195517 | 1.674269 | .231896 | 1.578674 | .180141 |
8 | 20 | N/A | N/A | 7.700505 | .631558 | 6.440538 | .583454 | 2.915459 | .301292 | 2.948623 | .179164 | 3.019905 | .354379 |
16 | 20 | N/A | N/A | 17.225584 | 2.736702 | 13.417214 | 1.070594 | 5.937969 | .700950 | 5.908887 | .906259 | 5.997185 | .785396 |
32 | 20 | N/A | N/A | 46.264520 | 2.615603 | 34.735076 | 4.262569 | 12.051944 | 1.048344 | 11.878799 | 1.137359 | 12.721666 | 1.563902 |
64 | 20 | N/A | N/A | 97.188706 | 4.836893 | 81.491849 | 4.286475 | 24.267441 | 2.217605 | 23.689274 | 2.808288 | 23.211365 | 2.546745 |
128 | 20 | N/A | N/A | 1197.867974 | 1050.030392 | 293.324126 | 282.611426 | 31.995605 | 2.262560 | 29.706528 | 3.831646 | 29.699265 | 3.920187 |
thread count | number of iterations | openssl 1.1.1 per operation avg usec | 1.1.1 std dev | openssl 3.0 per operation avg usec | 3.0 std dev | openssl 3.1 per operation avg usec | 3.1 std dev | openssl 3.2 per operation avg usec | 3.2 std dev | openssl 3.3 per operation avg usec | 3.3 std dev | openssl master per operation avg usec | master std dev |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 20 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
2 | 20 | 2.084954 | .030740 | 2.078892 | .029325 | .845364 | .920720 | 2.084977 | .035341 | .318142 | 1.178264 | 2.118905 | .028053 |
4 | 20 | .538477 | .196397 | .482107 | .221921 | .461693 | .225048 | .483760 | .251342 | .476211 | .235408 | .566216 | .212000 |
8 | 20 | .327685 | .028017 | .345039 | .037121 | .341348 | .042755 | .340384 | .041376 | .328197 | .031320 | .344774 | .049223 |
16 | 20 | .313549 | .028460 | .316191 | .019442 | .321787 | .020223 | .319470 | .014966 | .319301 | .017916 | .320236 | .016643 |
32 | 20 | .279673 | .015459 | .289872 | .017349 | .281189 | .020396 | .282942 | .019697 | .287452 | .016970 | .286675 | .018303 |
64 | 20 | .302050 | .011661 | .298320 | .010677 | .297114 | .007280 | .302354 | .011180 | .302594 | .010295 | .303578 | .007745 |
128 | 20 | .302731 | .006403 | .297120 | .005744 | .300040 | .009591 | .306142 | .009695 | .306845 | .009695 | .307916 | .008062 |
thread count | number of iterations | openssl 1.1.1 per operation avg usec | 1.1.1 std dev | openssl 3.0 per operation avg usec | 3.0 std dev | openssl 3.1 per operation avg usec | 3.1 std dev | openssl 3.2 per operation avg usec | 3.2 std dev | openssl 3.3 per operation avg usec | 3.3 std dev | openssl master per operation avg usec | master std dev |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 20 | .012287 | .001414 | .012340 | .001414 | .012849 | .001000 | .013091 | .001000 | .012267 | .001732 | .012336 | .001414 |
2 | 20 | 2.160425 | .320639 | 2.042598 | .144024 | 2.087254 | .022181 | 2.100206 | .029034 | 2.078665 | .035707 | 1.032296 | .954516 |
4 | 20 | .430782 | .261371 | .421700 | .202007 | .488072 | .232447 | .430117 | .226773 | .389972 | .227385 | .378467 | .164830 |
8 | 20 | .193471 | .048989 | .193820 | .038444 | .170548 | .029342 | .195965 | .043185 | .184925 | .044395 | .218394 | .093674 |
16 | 20 | .125442 | .010392 | .122851 | .008426 | .129342 | .015394 | .129474 | .010344 | .126383 | .015132 | .124772 | .009797 |
32 | 20 | .104035 | .011958 | .101520 | .005830 | .106365 | .010862 | .105000 | .012041 | .106676 | .014491 | .104400 | .006480 |
64 | 20 | .085252 | .003605 | .084127 | .003464 | .084082 | .003605 | .084101 | .004123 | .084975 | .003605 | .084225 | .004000 |
128 | 20 | .079254 | .003162 | .078366 | .003605 | .080096 | .003464 | .079588 | .003162 | .079281 | .002828 | .078887 | .003316 |
thread count | number of iterations | openssl 1.1.1 per operation avg usec | 1.1.1 std dev | openssl 3.0 per operation avg usec | 3.0 std dev | openssl 3.1 per operation avg usec | 3.1 std dev | openssl 3.2 per operation avg usec | 3.2 std dev | openssl 3.3 per operation avg usec | 3.3 std dev | openssl master per operation avg usec | master std dev |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 20 | 1250.997165 | 2.775555 | 1322.015610 | 1.346655 | 1268.190325 | 1.000685 | 1257.192960 | 1.420321 | 1326.828135 | 3.682804 | 1333.256295 | 3.461984 |
2 | 20 | 1259.357305 | 2.065016 | 1418.870390 | 43.030661 | 1298.107540 | 18.323572 | 1297.098220 | 18.734945 | 1289.750940 | 27.903169 | 1298.928025 | 15.192588 |
4 | 20 | 1319.096430 | 3.128889 | 1534.695025 | 46.337621 | 1381.281480 | 17.706446 | 1352.963875 | 17.766167 | 1346.398655 | 13.790705 | 1351.028900 | 18.229899 |
8 | 20 | 1341.541220 | 3.712705 | 1677.735620 | 58.396999 | 1431.819530 | 9.171769 | 1366.040465 | 7.951822 | 1367.920020 | 8.390914 | 1372.595145 | 8.406344 |
16 | 20 | 1356.159335 | 5.468834 | 2485.933100 | 128.541537 | 1443.399575 | 7.855456 | 1385.592575 | 5.001003 | 1384.241890 | 4.065323 | 1389.338920 | 5.786529 |
32 | 20 | 1374.559539 | 15.661886 | 4411.438019 | 316.291542 | 1881.458321 | 150.270200 | 1804.668695 | 166.097306 | 1793.247349 | 165.993205 | 1819.093026 | 141.955784 |
64 | 20 | 2013.577940 | 37.832543 | 8620.002289 | 263.539325 | 2673.995531 | 227.734368 | 2446.189286 | 135.044564 | 2453.469108 | 120.016833 | 2513.602403 | 126.797137 |
128 | 20 | 3404.126251 | 98.475745 | 20582.963973 | 681.593296 | 3839.294847 | 127.641886 | 3524.849886 | 61.798442 | 3567.698773 | 100.386011 | 3574.340066 | 44.147415 |
thread count | number of iterations | openssl 1.1.1 per operation avg usec | 1.1.1 std dev | openssl 3.0 per operation avg usec | 3.0 std dev | openssl 3.1 per operation avg usec | 3.1 std dev | openssl 3.2 per operation avg usec | 3.2 std dev | openssl 3.3 per operation avg usec | 3.3 std dev | openssl master per operation avg usec | master std dev |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 20 | 255.771875 | .315448 | 333.582105 | .498428 | 275.811690 | .356794 | 263.545750 | .340091 | 262.904205 | .401084 | 263.355870 | .570565 |
2 | 20 | 261.377875 | .701741 | 477.462650 | 23.870578 | 286.457210 | .969247 | 266.471190 | 1.258353 | 266.731675 | .921973 | 267.859215 | 1.130576 |
4 | 20 | 272.082750 | 1.018672 | 697.144505 | 21.200706 | 304.363660 | 2.160581 | 280.553130 | 1.212949 | 280.932975 | 1.088047 | 282.232685 | 1.675678 |
8 | 20 | 276.512930 | 1.444864 | 1239.633180 | 32.715138 | 325.250750 | 7.148883 | 291.159150 | 1.681342 | 292.548030 | 2.157716 | 293.762900 | 2.415092 |
16 | 20 | 283.232110 | 4.247018 | 2392.480090 | 113.418669 | 400.730610 | 22.296715 | 302.879530 | 2.891013 | 303.259115 | 2.896651 | 306.952650 | 8.964163 |
32 | 20 | 302.323367 | 9.248207 | 4353.436451 | 310.131504 | 836.863173 | 123.417753 | 436.197529 | 41.409085 | 427.455406 | 36.119622 | 444.001697 | 37.957361 |
64 | 20 | 456.865943 | 14.802992 | 9070.384250 | 578.722525 | 1174.198825 | 87.029640 | 599.924403 | 73.550483 | 608.911728 | 73.548293 | 610.645038 | 86.751163 |
128 | 20 | 657.628970 | 29.401494 | 22551.460611 | 776.779698 | 2355.229435 | 407.876032 | 858.151448 | 69.596186 | 907.539942 | 107.286518 | 872.444358 | 46.414155 |
thread count | number of iterations | openssl 1.1.1 per operation avg usec | 1.1.1 std dev | openssl 3.0 per operation avg usec | 3.0 std dev | openssl 3.1 per operation avg usec | 3.1 std dev | openssl 3.2 per operation avg usec | 3.2 std dev | openssl 3.3 per operation avg usec | 3.3 std dev | openssl master per operation avg usec | master std dev |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 20 | 255.903295 | .453937 | 417.113370 | .399634 | 290.137010 | .561035 | 268.149085 | .493063 | 267.627555 | .488549 | 269.140175 | .568447 |
2 | 20 | 262.589795 | .660340 | 763.097510 | 25.826358 | 304.844895 | 4.620495 | 272.090465 | .868326 | 271.986305 | 1.396468 | 272.937985 | 1.279302 |
4 | 20 | 274.099950 | .871825 | 1263.172085 | 38.930096 | 351.486610 | 6.821855 | 286.378220 | 1.014090 | 287.052565 | 1.426366 | 288.086765 | 1.391754 |
8 | 20 | 277.758875 | 1.797585 | 2926.021710 | 141.877481 | 434.841790 | 16.029435 | 297.159835 | 3.047254 | 299.084320 | 3.047325 | 299.481230 | 2.830215 |
16 | 20 | 283.864605 | 2.323885 | 5884.734365 | 475.354890 | 751.770760 | 33.022272 | 311.612325 | 3.839655 | 312.750945 | 8.040317 | 312.608215 | 3.590606 |
32 | 20 | 401.890610 | 60.551144 | 9974.204986 | 804.204263 | 1464.271395 | 166.405492 | 444.364821 | 40.197824 | 442.445177 | 46.255398 | 459.198212 | 41.202351 |
64 | 20 | 484.885255 | 47.522368 | 17665.550119 | 1276.797676 | 2408.405354 | 217.789393 | 642.124970 | 75.208330 | 615.341112 | 44.313578 | 667.530642 | 83.664404 |
128 | 20 | 700.495648 | 64.567153 | 36051.274945 | 2967.379505 | 4629.906655 | 281.845273 | 906.197656 | 75.552947 | 948.875672 | 89.804277 | 924.537677 | 67.086328 |
thread count | number of iterations | openssl 1.1.1 per operation avg usec | 1.1.1 std dev | openssl 3.0 per operation avg usec | 3.0 std dev | openssl 3.1 per operation avg usec | 3.1 std dev | openssl 3.2 per operation avg usec | 3.2 std dev | openssl 3.3 per operation avg usec | 3.3 std dev | openssl master per operation avg usec | master std dev |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 20 | 17.124565 | .305370 | 113.779945 | .330563 | 40.583485 | .397163 | 26.722755 | .404953 | 26.830195 | .384480 | 26.941735 | .311663 |
2 | 20 | 18.148460 | .714490 | 311.694160 | 13.535358 | 56.006925 | 3.095907 | 29.343075 | .765846 | 29.682640 | .827670 | 29.743020 | .621897 |
4 | 20 | 20.137870 | 1.074074 | 787.831425 | 26.174571 | 90.291740 | 3.533958 | 33.380095 | 1.162221 | 33.782980 | 1.211930 | 33.790085 | 1.270233 |
8 | 20 | 23.800765 | 1.913230 | 1664.132310 | 69.801162 | 138.633035 | 6.736376 | 39.413405 | 1.887818 | 38.959920 | 1.800974 | 39.920125 | 2.432896 |
16 | 20 | 24.536770 | 3.092610 | 3209.804750 | 146.526984 | 298.806650 | 40.246407 | 57.510965 | 5.893131 | 55.215885 | 4.473660 | 58.824275 | 4.670033 |
32 | 20 | 36.858835 | 7.843897 | 5831.395696 | 517.372466 | 613.283496 | 90.754910 | 138.124061 | 21.222110 | 143.744598 | 25.962936 | 130.729717 | 21.367718 |
64 | 20 | 63.301224 | 15.470364 | 11584.563052 | 459.529707 | 1034.138082 | 106.029261 | 204.334773 | 23.279419 | 202.855807 | 24.319304 | 200.037962 | 27.927920 |
128 | 20 | 100.197582 | 40.647095 | 28433.550420 | 968.079267 | 3455.328060 | 2168.589544 | 352.345831 | 51.696620 | 377.908989 | 48.346504 | 381.502991 | 33.564313 |
thread count | number of iterations | openssl 1.1.1 per operation avg usec | 1.1.1 std dev | openssl 3.0 per operation avg usec | 3.0 std dev | openssl 3.1 per operation avg usec | 3.1 std dev | openssl 3.2 per operation avg usec | 3.2 std dev | openssl 3.3 per operation avg usec | 3.3 std dev | openssl master per operation avg usec | master std dev |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 20 | 4.350620 | .440062 | 120.363500 | .414857 | 36.761930 | .343297 | 15.127995 | .170008 | 14.960895 | .410783 | 14.877785 | .434980 |
2 | 20 | 5.291520 | .785902 | 407.886260 | 13.680888 | 61.608205 | 5.400734 | 18.010180 | .741194 | 18.019110 | .735783 | 18.200140 | .591133 |
4 | 20 | 6.680735 | .920360 | 1021.279570 | 38.867570 | 154.858755 | 4.732353 | 22.435195 | 1.466403 | 22.404685 | 1.289143 | 22.271910 | 1.440637 |
8 | 20 | 11.007375 | 1.610668 | 2164.244245 | 77.721558 | 314.797650 | 17.628217 | 28.749465 | 2.118085 | 29.100105 | 2.444585 | 30.192435 | 2.451763 |
16 | 20 | 24.770325 | 3.287416 | 4121.361630 | 229.531564 | 653.780965 | 43.493103 | 57.250635 | 5.531840 | 54.072220 | 9.380357 | 56.234410 | 4.962247 |
32 | 20 | 50.863802 | 10.160088 | 7700.251956 | 609.844048 | 1226.615525 | 155.653842 | 132.216638 | 22.135969 | 139.329677 | 25.320758 | 125.473791 | 13.792101 |
64 | 20 | 105.755239 | 14.814370 | 14832.361569 | 574.771848 | 2216.970138 | 246.375611 | 221.410867 | 32.106184 | 219.743242 | 23.646970 | 224.838734 | 32.129246 |
128 | 20 | 203.005631 | 73.729086 | 34556.311629 | 1233.832958 | 5171.030463 | 1237.895975 | 411.621993 | 56.935244 | 443.103945 | 54.259943 | 446.643220 | 45.105517 |
thread count | number of iterations | openssl 1.1.1 per operation avg usec | 1.1.1 std dev | openssl 3.0 per operation avg usec | 3.0 std dev | openssl 3.1 per operation avg usec | 3.1 std dev | openssl 3.2 per operation avg usec | 3.2 std dev | openssl 3.3 per operation avg usec | 3.3 std dev | openssl master per operation avg usec | master std dev |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 20 | 31.648210 | .420673 | 96.002650 | .283358 | 48.273670 | .376680 | 36.854385 | .358145 | 36.821325 | .355778 | 36.873195 | .340166 |
2 | 20 | 32.812225 | .596557 | 224.847450 | 11.745576 | 58.947465 | 1.336827 | 39.156275 | .686070 | 39.390435 | .743470 | 39.111550 | .645521 |
4 | 20 | 34.896965 | .804898 | 538.193135 | 14.239644 | 86.419395 | 2.477505 | 43.048485 | .641177 | 42.888915 | .847329 | 43.086475 | .855748 |
8 | 20 | 37.531830 | 2.446947 | 1137.216770 | 36.989833 | 135.057180 | 6.229580 | 47.579180 | 1.739377 | 47.970395 | 2.025820 | 48.204110 | 1.852101 |
16 | 20 | 41.881995 | 2.230556 | 2126.466115 | 81.200824 | 278.411735 | 38.394225 | 62.665750 | 3.285511 | 62.638735 | 4.236618 | 61.470580 | 3.014235 |
32 | 20 | 50.534604 | 6.528192 | 4064.677675 | 252.129434 | 593.719458 | 127.431805 | 145.817901 | 29.148506 | 140.923197 | 21.584888 | 144.551852 | 24.684637 |
64 | 20 | 65.253746 | 12.386147 | 7940.320640 | 292.255110 | 966.580384 | 104.967506 | 184.570023 | 42.583489 | 179.912594 | 36.684039 | 171.686688 | 30.934182 |
128 | 20 | 68.019031 | 16.689182 | 20365.615753 | 472.330606 | 2586.045801 | 1055.913867 | 273.795910 | 43.461115 | 274.415595 | 39.426198 | 277.928515 | 48.546494 |
thread count | number of iterations | openssl 1.1.1 per operation avg usec | 1.1.1 std dev | openssl 3.0 per operation avg usec | 3.0 std dev | openssl 3.1 per operation avg usec | 3.1 std dev | openssl 3.2 per operation avg usec | 3.2 std dev | openssl 3.3 per operation avg usec | 3.3 std dev | openssl master per operation avg usec | master std dev |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 20 | 1255.854240 | 1.122266 | 1703.441175 | 2.969789 | 1331.205490 | 1.116172 | 1347.367520 | 1.857611 | 1277.733655 | .915484 | 1284.651380 | 1.425810 |
2 | 20 | 1265.413200 | 2.269376 | 2101.468855 | 176.714467 | 1397.327580 | 30.732287 | 1329.953760 | 27.952816 | 1321.994645 | 8.675479 | 1329.962170 | 18.830446 |
4 | 20 | 1323.615065 | 4.567231 | 3559.547660 | 164.630436 | 1460.383475 | 11.987384 | 1398.303605 | 24.290203 | 1392.210135 | 16.679290 | 1398.551380 | 17.084920 |
8 | 20 | 1348.814325 | 7.211639 | 7681.046590 | 399.584112 | 1531.580865 | 17.914342 | 1429.034685 | 15.646504 | 1448.034655 | 58.026405 | 1443.766460 | 17.045987 |
16 | 20 | 1364.471250 | 10.608800 | 16270.041650 | 897.346580 | 1699.600075 | 40.692193 | 1452.060905 | 13.238577 | 1464.873990 | 21.518480 | 1463.320295 | 6.359588 |
32 | 20 | 1397.339526 | 50.332508 | 30128.033646 | 2030.996919 | 2916.695876 | 131.790444 | 1883.804298 | 209.172785 | 1918.786341 | 118.782236 | 1904.901881 | 158.297404 |
64 | 20 | 2036.694267 | 32.147694 | 54905.642431 | 3691.015027 | 4942.990908 | 215.738989 | 2443.029916 | 138.414631 | 2558.030861 | 116.609278 | 2558.980393 | 139.562674 |
128 | 20 | 3322.593947 | 161.318764 | 105391.815328 | 4262.660577 | 8919.010996 | 208.537898 | 3688.578406 | 108.827019 | 3767.053995 | 61.509112 | 3810.050934 | 120.464221 |
thread count | number of iterations | openssl 1.1.1 per operation avg usec | 1.1.1 std dev | openssl 3.0 per operation avg usec | 3.0 std dev | openssl 3.1 per operation avg usec | 3.1 std dev | openssl 3.2 per operation avg usec | 3.2 std dev | openssl 3.3 per operation avg usec | 3.3 std dev | openssl master per operation avg usec | master std dev |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 20 | 259.669330 | .640586 | 658.404275 | .707241 | 326.755340 | .529912 | 275.083990 | .456157 | 277.317755 | .635814 | 277.357330 | .464790 |
2 | 20 | 265.724030 | .644067 | 1432.501240 | 174.360258 | 354.478550 | 11.595853 | 281.929575 | 1.228782 | 282.501535 | 1.609578 | 288.823015 | 1.457581 |
4 | 20 | 277.120080 | 1.036543 | 3316.969190 | 89.493922 | 457.655625 | 6.292027 | 298.130995 | 1.553544 | 297.967520 | 1.655932 | 303.365760 | 1.315914 |
8 | 20 | 280.483330 | 1.484990 | 7783.674395 | 533.067364 | 680.296365 | 17.156771 | 311.553145 | 5.134650 | 312.657175 | 5.769123 | 309.915000 | 1.809192 |
16 | 20 | 287.423430 | 2.444204 | 16223.717825 | 1138.220039 | 1279.317590 | 61.716577 | 333.311360 | 10.822956 | 335.047195 | 10.735088 | 334.181170 | 10.316392 |
32 | 20 | 305.620367 | 10.135998 | 31405.831354 | 1735.526073 | 2455.158441 | 206.046294 | 562.047948 | 59.416772 | 569.482113 | 67.027878 | 592.029128 | 64.163033 |
64 | 20 | 461.114206 | 8.253753 | 54529.117033 | 3090.700885 | 4260.049358 | 414.792949 | 863.597541 | 126.207914 | 831.007872 | 141.775598 | 901.623352 | 150.879865 |
128 | 20 | 674.770530 | 81.633137 | 104872.736565 | 6180.397519 | 8202.129559 | 449.049855 | 1073.242573 | 80.653898 | 1185.844155 | 112.646838 | 1180.334399 | 82.357012 |
thread count | number of iterations | openssl 1.1.1 per operation avg usec | 1.1.1 std dev | openssl 3.0 per operation avg usec | 3.0 std dev | openssl 3.1 per operation avg usec | 3.1 std dev | openssl 3.2 per operation avg usec | 3.2 std dev | openssl 3.3 per operation avg usec | 3.3 std dev | openssl master per operation avg usec | master std dev |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 20 | 259.365100 | .568098 | 666.938415 | 1.441103 | 336.617570 | 1.398145 | 282.626740 | .477139 | 285.062240 | .472570 | 283.995915 | .452442 |
2 | 20 | 265.982655 | .685172 | 1412.026370 | 139.109922 | 370.817835 | 9.392394 | 290.084955 | 1.892949 | 293.998340 | 1.188762 | 295.089695 | 1.726137 |
4 | 20 | 276.800120 | 1.057196 | 3294.808690 | 102.118463 | 462.415200 | 9.321664 | 305.713440 | 1.531247 | 309.213460 | 1.675302 | 310.323155 | 1.309818 |
8 | 20 | 281.187025 | 1.449562 | 7658.491695 | 477.856160 | 666.639240 | 19.353618 | 321.942150 | 7.287636 | 320.405015 | 7.157106 | 318.049955 | 3.147393 |
16 | 20 | 290.190030 | 9.171569 | 14919.265205 | 1552.558283 | 1279.917015 | 85.881256 | 339.551455 | 7.530973 | 335.970450 | 6.373791 | 347.038910 | 14.407874 |
32 | 20 | 306.321580 | 10.870188 | 29612.294898 | 1558.147982 | 2507.094189 | 160.488101 | 586.838263 | 59.835864 | 568.447978 | 58.723771 | 610.264202 | 47.165971 |
64 | 20 | 462.107772 | 8.188063 | 54811.446442 | 3736.907736 | 4182.972178 | 377.396598 | 852.157817 | 168.457549 | 864.758822 | 136.891586 | 918.565734 | 177.156421 |
128 | 20 | 688.816613 | 76.146199 | 103647.126626 | 4737.413543 | 8293.456249 | 548.713210 | 1091.658930 | 113.101883 | 1154.233613 | 73.262000 | 1186.668824 | 61.530835 |
thread count | number of iterations | openssl 1.1.1 per operation avg usec | 1.1.1 std dev | openssl 3.0 per operation avg usec | 3.0 std dev | openssl 3.1 per operation avg usec | 3.1 std dev | openssl 3.2 per operation avg usec | 3.2 std dev | openssl 3.3 per operation avg usec | 3.3 std dev | openssl master per operation avg usec | master std dev |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 20 | 18.378810 | .419761 | 422.599015 | .459836 | 89.229455 | .446378 | 37.160595 | .434097 | 37.076035 | .438941 | 37.238680 | .346992 |
2 | 20 | 19.292850 | .742583 | 1365.083590 | 45.484080 | 142.334715 | 7.952676 | 44.079360 | 1.056312 | 44.190445 | 1.040665 | 43.694310 | .977323 |
4 | 20 | 21.513205 | .967748 | 3400.321890 | 178.916831 | 281.878130 | 6.572441 | 50.518630 | 1.318835 | 51.238840 | 1.204375 | 51.141420 | 1.559287 |
8 | 20 | 24.232925 | 1.830540 | 7654.075170 | 481.141390 | 578.569655 | 10.424218 | 59.155440 | 2.852784 | 59.640215 | 2.508847 | 60.535535 | 2.887734 |
16 | 20 | 56.014705 | 6.920612 | 16302.195145 | 961.423874 | 1199.426685 | 42.647142 | 102.236410 | 20.622024 | 97.178275 | 15.101468 | 100.403905 | 12.338903 |
32 | 20 | 123.661301 | 11.667093 | 30772.768645 | 2020.453888 | 2189.928694 | 148.281252 | 269.734759 | 70.978121 | 273.674765 | 52.384320 | 261.046545 | 68.913508 |
64 | 20 | 238.318959 | 24.688371 | 55734.505637 | 2847.045831 | 4035.709514 | 427.965723 | 371.444735 | 78.407178 | 371.488316 | 45.243687 | 362.204279 | 45.883539 |
128 | 20 | 840.738251 | 436.501354 | 106427.615209 | 4518.396984 | 7938.857179 | 440.066689 | 672.769106 | 56.878387 | 694.330681 | 65.530317 | 698.677566 | 60.388746 |
thread count | number of iterations | openssl 1.1.1 per operation avg usec | 1.1.1 std dev | openssl 3.0 per operation avg usec | 3.0 std dev | openssl 3.1 per operation avg usec | 3.1 std dev | openssl 3.2 per operation avg usec | 3.2 std dev | openssl 3.3 per operation avg usec | 3.3 std dev | openssl master per operation avg usec | master std dev |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 20 | 11.420505 | .349691 | 417.957210 | .656314 | 88.341610 | .434031 | 38.089920 | .432678 | 36.924230 | .320526 | 38.624100 | .413784 |
2 | 20 | 12.435785 | .626047 | 1388.909365 | 37.228017 | 145.130595 | 9.877729 | 45.132835 | .639985 | 44.378900 | .968796 | 46.336395 | .776348 |
4 | 20 | 13.885985 | 1.109749 | 3411.329400 | 102.112805 | 291.238375 | 6.416421 | 52.697430 | 1.333581 | 51.813750 | 1.362056 | 53.535735 | 1.516997 |
8 | 20 | 18.946265 | 2.581246 | 6816.726270 | 436.657228 | 611.371010 | 15.902151 | 64.245760 | 3.093877 | 63.754240 | 2.961470 | 64.510050 | 3.091631 |
16 | 20 | 56.899355 | 6.506297 | 13754.532540 | 1367.454259 | 1240.407640 | 48.378941 | 125.061190 | 22.728571 | 116.970565 | 23.174925 | 122.225840 | 22.868263 |
32 | 20 | 122.749760 | 11.323920 | 28457.811416 | 1971.327769 | 2196.793016 | 195.877916 | 284.789451 | 56.794198 | 289.240759 | 70.793039 | 294.013104 | 53.216985 |
64 | 20 | 235.872407 | 28.171014 | 57041.357439 | 2399.644130 | 4220.392093 | 438.610906 | 404.722531 | 46.488328 | 404.056503 | 55.313334 | 393.993456 | 42.467884 |
128 | 20 | 1150.763256 | 668.373519 | 104851.476443 | 4874.815818 | 7988.415466 | 502.530338 | 734.137648 | 62.142816 | 786.517316 | 49.837486 | 793.802244 | 47.619155 |
thread count | number of iterations | openssl 1.1.1 per operation avg usec | 1.1.1 std dev | openssl 3.0 per operation avg usec | 3.0 std dev | openssl 3.1 per operation avg usec | 3.1 std dev | openssl 3.2 per operation avg usec | 3.2 std dev | openssl 3.3 per operation avg usec | 3.3 std dev | openssl master per operation avg usec | master std dev |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 20 | 32.742910 | .397856 | 423.354015 | .634486 | 95.752460 | .397071 | 44.333370 | .423935 | 44.578225 | .233508 | 44.737335 | .285795 |
2 | 20 | 34.368825 | .660791 | 1392.173685 | 58.709708 | 149.941925 | 9.496925 | 50.456120 | .784121 | 51.342260 | 1.172837 | 51.481120 | 1.358294 |
4 | 20 | 35.743610 | 1.102233 | 3352.216075 | 110.449343 | 280.735940 | 9.448594 | 56.724470 | 1.416481 | 57.112905 | 1.234195 | 57.227170 | 1.188975 |
8 | 20 | 37.952570 | 1.293101 | 7589.319670 | 565.869002 | 605.516680 | 20.521111 | 63.234535 | 2.761193 | 64.214500 | 2.261131 | 64.119825 | 3.361999 |
16 | 20 | 46.274455 | 3.627630 | 16214.705315 | 1022.338512 | 1226.331340 | 58.248968 | 93.779210 | 15.531945 | 96.017845 | 12.953756 | 103.441695 | 21.578135 |
32 | 20 | 82.448602 | 12.709397 | 30733.571455 | 1663.620927 | 2139.982782 | 188.723770 | 240.779368 | 61.984170 | 253.149455 | 59.983026 | 261.375329 | 62.312790 |
64 | 20 | 150.771297 | 17.848477 | 57282.534793 | 2487.405207 | 4061.856538 | 343.423967 | 343.120098 | 59.392758 | 340.909549 | 41.433956 | 334.686554 | 40.850721 |
128 | 20 | 331.401463 | 204.973975 | 102940.634444 | 5922.000502 | 7789.357970 | 428.471329 | 573.038968 | 52.618381 | 628.112000 | 66.437069 | 621.116574 | 65.378627 |
My summary of the results - we are still 2-4 times slower on decoding keys and 2 times slower on handshake with high thread counts. The newrawkey results are also much slower but I think it is inevitable as the operation was really lightweight on 1.1.1 and it is not really possible to keep it so lightweight with providers.
Remarkable is randbytes where we are much faster now than in 1.1.1.
Thanks @Sashan and @vdukhovni for the work on the run-perf script.
We were really horrible on 3.0 however the current performance as of 3.3 and master in general is fairly OK and IMO acceptable with all the new features that the providers API accomplishes.
We are still missing some additional perf tests like testing a throughput of TLS connections.
agreed, thank you @t8m, these are great results
To properly attempt to improve openssl performance, we need a starting point. this Epic is meant to capture comprehensive performance data immediately so that we have a better sense of where we are in terms of our performance behavior on a variety of environments. Specifically the matrix we should capture is:
Note the above matrix, is representative of our current primary platform list
With incremental thread counts (preferably in powers of two, up two and one step beyond the maximum number of cpus on a given platform
for reference, a script such as the following may be used to capture the required data:
results should be reported in this epic.
Following that report, we need to analyze the data to identify performance regressions and root cause them.