Skip to content

Instantly share code, notes, and snippets.

@cellularmitosis

cellularmitosis/README.md

Last active Jul 12, 2020
Embed
What would you like to do?
Graphing the LuaJIT benchmarks to compare architectures

Blog 2020/6/10   (retroactively blogged on 2020/6/12)

<- previous | index | next ->

Graphing the LuaJIT benchmarks to compare architectures

LuaJIT is an amazingly fast implementation of Lua which uses just-in-time compilation.

On their website, they use a number of benchmarks to compare the performance boost of their JIT'ed implementation vs. the stock Lua interpreter.

luajit

However, they don't present the information in a way which makes it easy to see the performance differences between architectures.

I copied their numbers into a spreadsheet, normalized each benchmark, and then graphed each architecture against x86.

In most cases, the JIT performance boost isn't quite as large on other architectures.

Note: these are comparisons of JIT boost, not comparisons of absolute performance. If the graph indicates 50%, that means that architecture's JIT sees only 50% of the speedup seen by the x86 JIT over the stock Lua interpreter.

x86_64

I was surprised to see that x86_64 generally doesn't see as much of a JIT boost as x86 (with the exception of nbody).

x86_64

ARM

ARM sees a slightly smaller speedup than x86_64 (with the exception of nsieve-bit).

arm

PowerPC

PowerPC sees a yet smaller boost, sometimes dipping below 50% of x86's JIT boost.

ppc

MIPS

MIPS sees a still smaller boost overall, with the exception of an extreme outlier: nsieve sees over twice the speedup of x86.

mips

The MIPS graph with nsieve clipped:

mips2

All architectures

all1

all2

The numbers

lua

normalized

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.