From 72b3fff72f6bb9cf5796bbcd50e9a490d4e02b4b Mon Sep 17 00:00:00 2001
From: Mike Pall
This page gives a short introduction to the usage of the FFI library. @@ -253,14 +253,17 @@ would consume 40 Megabytes in plain Lua (on x64). Next, performance: the pure Lua version runs in 9.57 seconds (52.9 seconds with the Lua interpreter) and the FFI version runs in 0.48 seconds on my machine (YMMV). That's a factor of 20x faster (110x -faster than with plain Lua). +faster than the Lua interpreter).
The avid reader may notice that converting the pure Lua version over to use array indexes for the colors ([1] instead of .red, [2] instead of .green etc.) ought to be more compact and faster. This is certainly true (by a factor of -~1.7x), but the resulting code would be less idiomatic and rather +~1.7x). Switching to a struct-of-arrays would help, too. +
++However the resulting code would be less idiomatic and rather error-prone. And it still doesn't get even close to the performance of the FFI version of the code. Also, high-level data structures cannot be easily passed to other C functions, especially I/O functions, -- cgit v1.2.3-55-g6feb