I have performed OpenSSL tests:
$this->bbcode_second_pass_code('', '# openssl speed')
with following results:
1. Original image, default frequency:
$this->bbcode_second_pass_code('', '
OpenSSL 1.0.1c 10 May 2012
built on: Sat May 12 17:03:10 UTC 2012
options:bn(64,32) md2(int) rc4(ptr,char) des(idx,cisc,16,long) aes(partial) idea(int) blowfish(ptr)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -march=armv5te -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -DOPENSSL_NO_TLS1_2_CLIENT -DTERMIO -O3 -Wall -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAES_ASM -DGHASH_ASM
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
md2 480.55k 1041.34k 1476.95k 1653.08k 1715.11k
mdc2 804.74k 981.65k 1041.66k 1060.52k 1064.96k
md4 2721.50k 9957.16k 28363.01k 53229.85k 70752.58k
md5 1767.90k 6342.96k 18960.55k 37908.48k 53201.58k
hmac(md5) 2827.27k 9448.60k 25247.83k 43534.34k 55022.93k
sha1 2313.87k 7161.07k 17071.00k 26112.68k 30741.85k
rmd160 1628.40k 4775.89k 11240.28k 17037.65k 20162.18k
rc4 30218.31k 34300.22k 35484.16k 35760.81k 35951.65k
des cbc 6214.32k 6605.06k 6712.06k 6740.65k 6733.82k
des ede3 2375.05k 2457.47k 2470.49k 2476.71k 2473.98k
idea cbc 7316.80k 7797.40k 7895.72k 7927.13k 7950.90k
seed cbc 7903.48k 8994.54k 9350.74k 9446.74k 9410.06k
rc2 cbc 5925.24k 6226.17k 6299.39k 6319.45k 6337.16k
rc5-32/12 cbc 0.00 0.00 0.00 0.00 0.00
blowfish cbc 11755.53k 12918.87k 13256.87k 13345.45k 13314.73k
cast cbc 10923.01k 12010.51k 12297.42k 12339.88k 12315.31k
aes-128 cbc 13495.22k 15529.41k 16159.40k 16323.93k 16411.40k
aes-192 cbc 11960.85k 13481.26k 13951.15k 14076.59k 14098.43k
aes-256 cbc 10677.49k 11947.75k 12319.08k 12372.65k 12389.03k
camellia-128 cbc 9153.13k 10684.10k 11209.97k 11340.71k 11334.55k
camellia-192 cbc 7914.01k 8602.54k 8799.57k 8879.35k 8844.63k
camellia-256 cbc 7914.45k 8631.57k 8829.00k 8850.43k 8844.63k
sha256 3719.65k 8624.43k 15021.48k 18488.32k 19805.53k
sha512 1097.42k 4376.38k 6296.06k 8626.26k 9611.95k
whirlpool 437.35k 846.66k 1369.04k 1647.27k 1747.63k
aes-128 ige 12457.56k 15002.92k 15835.82k 16112.42k 15701.79k
aes-192 ige 11102.89k 13082.88k 13712.90k 13918.52k 13549.57k
aes-256 ige 10044.80k 11598.66k 12129.78k 12217.34k 11963.05k
ghash 15981.09k 17628.86k 18194.41k 18266.79k 18270.89k
sign verify sign/s verify/s
rsa 512 bits 0.002098s 0.000210s 476.6 4766.3
rsa 1024 bits 0.011026s 0.000627s 90.7 1593.8
rsa 2048 bits 0.072464s 0.002244s 13.8 445.6
rsa 4096 bits 0.530526s 0.008590s 1.9 116.4
sign verify sign/s verify/s
dsa 512 bits 0.002095s 0.002151s 477.3 465.0
dsa 1024 bits 0.006116s 0.006978s 163.5 143.3
dsa 2048 bits 0.021783s 0.025126s 45.9 39.8
sign verify sign/s verify/s
160 bit ecdsa (secp160r1) 0.0014s 0.0051s 707.8 194.7
192 bit ecdsa (nistp192) 0.0018s 0.0070s 551.4 142.2
224 bit ecdsa (nistp224) 0.0023s 0.0092s 443.8 108.8
256 bit ecdsa (nistp256) 0.0027s 0.0119s 364.6 83.9
384 bit ecdsa (nistp384) 0.0058s 0.0289s 171.5 34.6
521 bit ecdsa (nistp521) 0.0120s 0.0652s 83.0 15.3
163 bit ecdsa (nistk163) 0.0045s 0.0157s 220.0 63.7
233 bit ecdsa (nistk233) 0.0093s 0.0289s 107.5 34.6
283 bit ecdsa (nistk283) 0.0140s 0.0537s 71.2 18.6
409 bit ecdsa (nistk409) 0.0353s 0.1184s 28.3 8.4
571 bit ecdsa (nistk571) 0.0860s 0.2794s 11.6 3.6
163 bit ecdsa (nistb163) 0.0044s 0.0169s 225.1 59.1
233 bit ecdsa (nistb233) 0.0091s 0.0317s 109.7 31.5
283 bit ecdsa (nistb283) 0.0140s 0.0599s 71.3 16.7
409 bit ecdsa (nistb409) 0.0354s 0.1354s 28.2 7.4
571 bit ecdsa (nistb571) 0.0859s 0.3187s 11.6 3.1
op op/s
160 bit ecdh (secp160r1) 0.0042s 239.7
192 bit ecdh (nistp192) 0.0058s 173.2
224 bit ecdh (nistp224) 0.0077s 130.5
256 bit ecdh (nistp256) 0.0099s 101.5
384 bit ecdh (nistp384) 0.0243s 41.2
521 bit ecdh (nistp521) 0.0544s 18.4
163 bit ecdh (nistk163) 0.0076s 131.1
233 bit ecdh (nistk233) 0.0141s 70.8
283 bit ecdh (nistk283) 0.0264s 37.9
409 bit ecdh (nistk409) 0.0587s 17.0
571 bit ecdh (nistk571) 0.1384s 7.2
163 bit ecdh (nistb163) 0.0084s 118.7
233 bit ecdh (nistb233) 0.0157s 63.8
283 bit ecdh (nistb283) 0.0297s 33.6
409 bit ecdh (nistb409) 0.0667s 15.0
571 bit ecdh (nistb571) 0.1586s 6.3
')
2. New image with hard floats, default frequency:
$this->bbcode_second_pass_code('', '
OpenSSL 1.0.1c 10 May 2012
built on: Sun Jul 29 23:42:59 UTC 2012
options:bn(64,32) md2(int) rc4(ptr,char) des(idx,cisc,16,long) aes(partial) idea(int) blowfish(ptr)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -march=armv6 -mfloat-abi=hard -mfpu=vfp -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -DOPENSSL_NO_TLS1_2_CLIENT -DTERMIO -O3 -Wall -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAES_ASM -DGHASH_ASM
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
md2 524.69k 1145.73k 1631.57k 1823.74k 1884.16k
mdc2 849.08k 1050.09k 1124.94k 1143.47k 1149.61k
md4 2394.38k 9221.42k 27054.34k 52661.25k 72570.20k
md5 1769.90k 6756.31k 20073.05k 39787.18k 55500.80k
hmac(md5) 3107.75k 10379.31k 27320.85k 46126.76k 57565.18k
sha1 2047.93k 6661.93k 16228.44k 25619.46k 30687.23k
rmd160 1442.23k 4596.01k 10994.18k 16935.25k 20236.97k
rc4 34711.47k 40741.72k 42596.95k 43084.80k 43169.11k
des cbc 6399.70k 6773.25k 6843.90k 6868.99k 6864.90k
des ede3 2390.71k 2438.87k 2450.35k 2456.58k 2452.14k
idea cbc 8938.74k 9625.39k 9812.39k 9860.78k 9857.71k
seed cbc 8501.12k 9465.39k 9782.98k 9832.45k 9822.18k
rc2 cbc 6310.15k 6641.15k 6750.87k 6750.89k 6747.48k
rc5-32/12 cbc 0.00 0.00 0.00 0.00 0.00
blowfish cbc 12171.16k 13513.33k 13835.52k 13929.13k 13877.25k
cast cbc 11245.14k 12365.16k 12677.80k 12756.99k 12781.16k
aes-128 cbc 14424.15k 15812.16k 16246.27k 16415.17k 16375.81k
aes-192 cbc 12558.47k 13672.13k 14014.72k 14102.87k 14112.09k
aes-256 cbc 11254.36k 12081.58k 12330.84k 12396.54k 12402.69k
camellia-128 cbc 9925.14k 10555.11k 10741.42k 10791.25k 10777.94k
camellia-192 cbc 7988.03k 8395.05k 8514.13k 8543.91k 8530.60k
camellia-256 cbc 8021.76k 8425.55k 8517.12k 8547.33k 8564.61k
sha256 3565.60k 8606.42k 15008.26k 18457.60k 19808.26k
sha512 1113.04k 4435.22k 6309.29k 8594.09k 9614.68k
whirlpool 436.23k 832.68k 1339.48k 1622.30k 1723.05k
aes-128 ige 13944.14k 15497.65k 15953.08k 16022.53k 15594.84k
aes-192 ige 12239.55k 13419.35k 13763.16k 13850.97k 13514.07k
aes-256 ige 10932.87k 11863.32k 12131.50k 12200.62k 11933.01k
ghash 15972.46k 17639.70k 18148.95k 18281.47k 18284.54k
sign verify sign/s verify/s
rsa 512 bits 0.002085s 0.000208s 479.7 4807.7
rsa 1024 bits 0.011025s 0.000631s 90.7 1585.7
rsa 2048 bits 0.072537s 0.002270s 13.8 440.5
rsa 4096 bits 0.530526s 0.008710s 1.9 114.8
sign verify sign/s verify/s
dsa 512 bits 0.002079s 0.002145s 481.0 466.3
dsa 1024 bits 0.006095s 0.007054s 164.1 141.8
dsa 2048 bits 0.021761s 0.025471s 46.0 39.3
sign verify sign/s verify/s
160 bit ecdsa (secp160r1) 0.0014s 0.0051s 700.7 195.9
192 bit ecdsa (nistp192) 0.0018s 0.0072s 551.4 139.2
224 bit ecdsa (nistp224) 0.0023s 0.0094s 440.7 106.8
256 bit ecdsa (nistp256) 0.0028s 0.0122s 363.4 81.7
384 bit ecdsa (nistp384) 0.0059s 0.0295s 170.8 33.9
521 bit ecdsa (nistp521) 0.0122s 0.0651s 82.3 15.4
163 bit ecdsa (nistk163) 0.0042s 0.0155s 235.8 64.5
233 bit ecdsa (nistk233) 0.0087s 0.0281s 114.9 35.6
283 bit ecdsa (nistk283) 0.0131s 0.0523s 76.6 19.1
409 bit ecdsa (nistk409) 0.0326s 0.1160s 30.6 8.6
571 bit ecdsa (nistk571) 0.0786s 0.2727s 12.7 3.7
163 bit ecdsa (nistb163) 0.0042s 0.0166s 238.9 60.4
233 bit ecdsa (nistb233) 0.0086s 0.0307s 116.9 32.5
283 bit ecdsa (nistb283) 0.0131s 0.0587s 76.4 17.0
409 bit ecdsa (nistb409) 0.0331s 0.1340s 30.2 7.5
571 bit ecdsa (nistb571) 0.0803s 0.3159s 12.5 3.2
op op/s
160 bit ecdh (secp160r1) 0.0045s 223.5
192 bit ecdh (nistp192) 0.0061s 164.8
224 bit ecdh (nistp224) 0.0080s 124.8
256 bit ecdh (nistp256) 0.0102s 98.0
384 bit ecdh (nistp384) 0.0251s 39.9
521 bit ecdh (nistp521) 0.0563s 17.8
163 bit ecdh (nistk163) 0.0078s 128.9
233 bit ecdh (nistk233) 0.0141s 71.0
283 bit ecdh (nistk283) 0.0262s 38.2
409 bit ecdh (nistk409) 0.0583s 17.1
571 bit ecdh (nistk571) 0.1368s 7.3
163 bit ecdh (nistb163) 0.0083s 120.1
233 bit ecdh (nistb233) 0.0153s 65.4
283 bit ecdh (nistb283) 0.0293s 34.1
409 bit ecdh (nistb409) 0.0658s 15.2
571 bit ecdh (nistb571) 0.1574s 6.4
')
There is an improvements in speed, but results are not as significant as I expected.
For example:
$this->bbcode_second_pass_code('', '
rc4 30218.31k 34300.22k 35484.16k 35760.81k 35951.65k
vs.
rc4 34711.47k 40741.72k 42596.95k 43084.80k 43169.11k
')
Nonetheless it is always nice to see a performance grow
