From ddd66308d67ae29b59b81bd83fe0506e4a11d08b Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Tue, 5 Jan 2016 14:54:31 +0100 Subject: flush LuaJIT compiled code cache before executing commands --- applause.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'applause.c') diff --git a/applause.c b/applause.c index 4a5f453..6c3a2a3 100644 --- a/applause.c +++ b/applause.c @@ -638,6 +638,20 @@ do_command(lua_State *L, const char *command) int stack_top; char *buffer; + /* + * EXPERIMENTAL: I found that performance decreases + * progressively when running one and the same command. + * This is probably because the limited space for the + * compiled code gets filled up rapidly and LuaJIT + * resorts to using the interpreter. + * This flashes the entire code cache for every + * new command and improves matters. + * TODO: It would probably be a good idea to increase the + * total size of the code cache and give some indication + * of its usage (e.g. in the prompt). + */ + luaJIT_setmode(L, 0, LUAJIT_MODE_ENGINE | LUAJIT_MODE_FLUSH); + /* the error hanlder function for lua_pcall() */ lua_pushcfunction(L, traceback); -- cgit v1.2.3