LuaJIT 2.1 Profiler released

  • LuaJIT is a work of great beauty and efficiency. I've been working on a commercial product for small ARM boards where rapid prototyping has been essential because of ever changing requirements but the speed of the finished code is also paramount. LuaJIT has made this project an absolute pleasure. It wraps C libraries cleanly, it runs within 5-10% of native code speed on the ARM (I checked because I didn't believe it at first) and it's 100% compatible with all the Lua 5.1 supporting libraries I need. This new profiler will be a great addition to the toolbox along with ZeroBrane Studio's debugger which I just discovered this week and which also rocks.

    Mike Pall needs several Jolt Awards.

  • The most interesting conclusions of Mike Pall reflect my experiences: sampling profilers are often much more usable in practice than instrumentation:

    As you might have noticed, I had to change my plans compared to the original approach presented in June. The main problem with the instrumenting profiler was finding high-precision and high-speed timing sources for all platforms. (...) The necessary pipeline flushes shadowed the actual timings up to the point where the measurements were less accurate than with a sampling profiler! Other platforms offered only inaccurate timing sources or none that are accessible from user mode. And to top it off, the instrumentation added considerable overhead. (...) I had to scrap that work and decided to go with a sampling profiler.

    And I don't know any other scripting language with a built-in sampling profiler. Does anybody?

  • Great news, up until now there was no good Lua profiler.

    You can thank GIANTS Software for this one: http://luajit.org/sponsors.html

    GIANTS Software GmbH is sponsoring the development of a low-overhead profiling functionality for LuaJIT 2.1, starting in June 2013. GIANTS Software develops a variety of simulation games for desktop, mobile and consoles. These games make extensive use of Lua for scripting and modding. Switching to LuaJIT was instrumental in reducing the CPU load and sustaining the required frame rates on all platforms.

    Existing profilers for Lua and LuaJIT are based on Lua hooks and debug queries. The use of these generic mechanisms incurs a high overhead. Execution of a program under control of such a profiler causes substantial slow-downs. Actual use of the program (gameplay) may be impossible in some cases.

    The goal is to design and implement a new profiling functionality that has a much lower overhead, better control of detail and high flexibility.

  • In this day of multiple megabyte applications, it's amazing to me how much Mike Pall is able to fit into ~300 kB.

    Mike Pall is without doubt one of the most talented developers of our generation, alongside people like Fabrice Bellard and Jeff Dean (to name a few).

  • Slightly off-topic, but does anyone know how I can download the complete mailing list archive data (of luajit)? Many of Mike's posts are very informative and useful, and I'd like to be able to search/read them easily, offline.

  • When I grow up, I want to be Mike Pall.

  • This. Is. Awesome.