MySQL 4.0.20d has been a staple of our Linux tests since its inception. Even though it does not carry high relevance for a workstation test, we still regard it as the de facto free, open sourced benchmark for Linux. Below, you can see our results for sql-bench on both the 64-bit and 32-bit kernels for SuSE 9.1.
Hold your mouse over for the 64-bit graph.
Hold your mouse over for the 64-bit graph.
We already see some exciting trends with this benchmark. For one, the 64-bit MySQLd appears to be much faster than the 32-bit one (mouse over the graphs to see the difference). Since the above benchmarks were done without HyperThreading, we enabled it in the graph below.
We expect to see a performance increase with HyperThreading - SQL servers must thread well. Unfortunately, the sql-bench benchmark is more to blame than anything else, and it does not thread realistically. As we validate a new benchmark for this portion of our Linux benchmark suite, sql-bench will do, but keep in mind that its extremely synthetic behavior.
Thanks for this article. It has been needed for about a year. Every previous benchmark of AMD 64 seemed to be 32-bit mode which is rather missing the point.
Firefox 1.0PR on LINUX did not show the 64-bit results until I went to edit:preferences:web features:enable java advanced... and turned on lots of crap (I don't know which item made the difference).
The information was fascinating but the presentation was very awkward.
When you see a surprising benchmark result, it is a good idea to analyze why you were surprised. For example, I would guess that the poor showing for 64-bit code on John the Ripper might be due to hand-coded x86 assembly code. Note: just a guess.
The fact that Wine is only 32-bit seems pretty uninteresting/unsurprising: Win32 binaries are also only 32-bit.
Few things in the LINUX world are binary-only, so almost anything for which CPU performance matters can and should be run in 64-bit mode on a 64-bit processor.
On the LAME encoding benchmark, isn't the actual value really "Play time divided by encoding time"? Or perhaps "Relative encoding rate"? Anyway, the text explains the graph better (in 1 second the 64-bit FX-53 encoded 25 seconds of audio). Otherwise, good stuff.
Crafty does have a bit of hand tuned asm for both x86 and x86_64. Most of the operations are done with boards packed into bit representations. For example, like this:
while (moves) {
to=FirstOne(moves);
*move++=temp|(to<<6)|(PcOnSq(to)<<15);
Clear(to,moves);
}
The FirstOne() function utilizes the bitscan ops of x86 (bsr = bit scan reverse), but notice the cmpl at the top:
what's up with the encryption benchmarks? "OpenSSL's crypt libraries are probably heavily optimized for 32-bit operation; we see the difference in the two architectures very clearly."
But the results show that 64bit mode is more than two times as fast as 32bit mode in one case (RSA), and 50% faster in the other case (AES)?
(and btw I haven't looked at johntheripper, but it might contain hand-optimized assembly for x86, but only generic c code for other architectures such as x86_64.)