Came across this in the zsh archives:
I've been using the stand-alone: http://www.fourmilab.ch/webtools/base64/ I never realised I already had it in openssl. Thanks for the tip. This led me to see what else I might already have or could get in a ready made package rather than having to use a source. (I do need this util in some form on every box and previously all my boxes were SCO OpenServer and I had been using the fourmilab source for years.) Then I decided to run a few simple time tests, since this gets used a lot in various system() commands in application code and cgi scripts etc... I expected the simple plain base64 util to be the fastest but I was wrong: In each case I repeated the same command many times and always got almost exactly the same results, that is, +- 0m0.004 of the numbers shown so these are representative not just a fluke or caching effects or effects of the os being busy elsewhere. the fourmilab source: nj4:~ # time base64 </boot/vmlinuz >/dev/null real 0m0.074s user 0m0.072s sys 0m0.000s openssl: nj4:~ # time opsnssl base64 </boot/vmlinuz >/dev/null -bash: opsnssl: command not found real 0m0.001s user 0m0.000s sys 0m0.000s mimencode comes in the metamail package: nj4:~ # time mimencode </boot/vmlinuz >/dev/null real 0m0.078s user 0m0.076s sys 0m0.004s gmime-uuencode: It actually does base64 not uuencode if you give it the -m or --base64 option. It comes in the gmime package. It prepends and appends some junk to the actual base64 output so it's inconvenient for me to actually use: nj4:~ # echo this is a test |gmime-uuencode -m - begin-base64 600 - dGhpcyBpcyBhIHRlc3QK ==== nj4:~ # As for the speed: nj4:~ # time gmime-uuencode -m - </boot/vmlinuz >/dev/null real 0m0.009s user 0m0.008s sys 0m0.000s Ooenssl destroys the rest. So even though I have the dedicated util it's actually better to use openssl. As a side benefit, thats one less special thing to maintain on all my boxes.
The funny thing here is that `opsnssl` doesn't even exist, so his performance comparison is kinda... well, non-existent. It's still interesting, though, because `gmime-uuencode -m` can encode the file almost as fast as it takes the system to realize that opsnssl doesn't exist!
I find it amusing that at the end of his comparison section, he spells OpenSSL wrong yet again ("Ooenssl").
Good stuff ;-)
Anyways... we've probably all made goofs like this. I mostly found it amusing because of how awesome GMime is :p
No comments:
Post a Comment