[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Computed goto optimization of vanilla Lua
- From: Jean-Luc Jumpertz <jean-luc@...>
- Date: Sat, 6 Feb 2016 00:37:51 +0100
A few more results, this time on ARM CPUs (iOS devices)
The context:
-Compiler: Xcode 7.2 / clang (corresponding to clang version 3.7, I guess), -O2 -Os (standard compile options used for ‘release’ build)
- Lua 5.2.4
- Benchmark lua-image-ramp-bench.lua (see https://gist.github.com/jlj/de7d8be6f1160ea2963c), that makes use of various Lua opcodes, including lots of tables creation, table get, table set, and GC.
- Low-overhead profiling using Xcode Instruments
- No debug hook
On iPod touch 2013 (arm v7 32bits architecture), the overall measured improvement is small but stable:
- running time of luaV_execute without computed goto: total = 182.2 s, internal = 31,62s
- running time of luaV_execute with computed goto: total = 178.9 s (-2%), internal = 26.34s (-17%)
On devices with a 64 bits arm CPU, no obvious benefit was seen during the tests, and the measured time varies quite significantly between successive runs.
If lvm.c is compiled in -O3 mode, results get slightly better.
iPad Air (2013):
- running time of luaV_execute without computed goto: total = 57.3 s (varying from 52 to 60s)
- running time of luaV_execute with computed goto: total = 54.0 s (varying from 52 to 57s)
iPhone 6 (2014):
- running time of luaV_execute without computed goto: total = 38.3 s (varying from 37.4 to 39.7s)
- running time of luaV_execute with computed goto: total = 38.2 s (varying from 36.9 to 40.9s)
- running time of luaV_execute with computed goto and lvm.c compiled with -O3: total = 37.4 s (varying from 36.1 to 39.1s)
Jean-Luc