Skip to content

TurkeyMcMac/jitprofiler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

LuaJIT Profiler

This Minetest mod lets you use LuaJIT's builtin profiler. This profiler is good for pinpointing expensive parts of mod code.

How to Use

  • Add the mod to the secure.trusted_mods list.
  • Enable the mod.
  • In-game start the profiler with /jitprofiler_start 1 <filename>. The profiling data will be written to <worldpath>/jitprofiles/<filename>.
  • Collect data for a while.
  • Stop profiling with /jitprofiler_stop or by exiting the world.
  • Download FlameGraph if you haven't done so.
  • Create a flame graph SVG with ./flamegraph.pl <worldpath>/jitprofiles/<filename> > graph.svg.
  • Open the SVG with your browser or another viewing program.
  • The top level of each stack snapshot will be "C", "G", "I", "J", or "N", representing C code, garbage collection, interpreter, JIT compilation, or compiled code, respectively.

Issues

  • This mod can cause the game to hang somehow. Most of the profiling data collected before the hang is saved.
  • Sometimes a lot of C code execution is reported in suspicious places. I think this represents time taken by the Minetest engine, but I don't know why the profiler thinks the code is executed inside a Lua function.
  • Using this mod with Mesecons luacontrollers can cause crashes for some reason.

About

LuaJIT profiler for Minetest

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages