I recently bought a new Raspberry Pi 3 and installed Slackware ARM current (hard float) on it. My goal was to compare the performance of the hard float port against Slackware ARM 14.2 (soft float), which is currently powering this RPi3 hosted website.
As before, my tests are solely focused on tasks relating to performance with Apache/PHP, MySQL and OpenSSL. For the record, these results should not be perceived as irrefutable scientific proof 😉
There are minor differences between the two Slackware installations, but I don’t believe that will make much of a difference with the tests I’m running. I’ve migrated my configuration files from 14.2 to Slackware current so the setup is as identical as can be.
All tests were performed by executing each task 15 times and calculating the average result.
Slackware 14.2 | Slackware Current |
---|---|
Software floating point | Hardware floating point |
Apache 2.4.27 | Apache 2.4.27 |
MariaDB 10.0.31 | MariaDB 10.0.32 |
PHP 5.6.31 | PHP 5.6.31 |
OpenSSL 1.0.2k | OpenSSL 1.0.2l |
Kernel 4.9.x | Kernel 4.9.x |
MicroSDHC Ultra UHS-I | MicroSDHC Ultra UHS-I |
PHP performance:
To keep it simple I’m letting my WordPress caching engine calculate and display the time spent to create cached versions of dynamic pages. Below are the average values generated per installation for my Slackware 14.2 review page:
# Soft float /** Dynamic page generated in 1.7012 seconds. */ # Hard float /** Dynamic page generated in 1.4891 seconds. */
I’m writing this down as a 12.47% decrease in execution time for PHP scripts with the hard float.
MySQL performance:
I’m simply relaying on the BENCHMARK() function with this test. Here are the average values generated:
# Soft float SELECT BENCHMARK(1000000,ENCODE('praise','bob')); +-------------------------------------------+ | BENCHMARK(1000000,ENCODE('praise','bob')) | +-------------------------------------------+ | 0 | +-------------------------------------------+ 1 row in set (3.03 sec) # Hard float SELECT BENCHMARK(1000000,ENCODE('praise','bob')); +-------------------------------------------+ | BENCHMARK(1000000,ENCODE('praise','bob')) | +-------------------------------------------+ | 0 | +-------------------------------------------+ 1 row in set (1.02 sec)
I’m writing this down as a 66.34% decrease in query execution times for the hard float.
OpenSSL performance:
# Soft float $ openssl speed rsa2048 rsa4096 sign verify sign/s verify/s rsa 2048 bits 0.025189s 0.000675s 39.7 1482.2 rsa 4096 bits 0.172373s 0.002566s 5.8 389.7 # Hard float $ openssl speed rsa2048 rsa4096 sign verify sign/s verify/s rsa 2048 bits 0.018764s 0.000477s 53.3 2097.9 rsa 4096 bits 0.124198s 0.001783s 8.1 561.0
Based on this test, the hard float offers improvements in the range of 25% to 44% compared to the soft float.
In short, the hard float port does not only shine with multimedia content but it also provides some impressive gains for your lamp stack. I’m officially excited for the next stable Slackware ARM release.
Roger hosts his website off of a Raspberry Pi!
This post, re-published here with permission, was originally published on Roger’s site here.
Leave a Reply