Sallomon
Sallomon

Reputation: 9

Lua - slow bytcode

i have 3 files x.lua, y.lua and main.lua. These files doing some mathematics operations (increment and decrement number). When i run the command

lua main.lua

is much faster than

luac -o main.luac -s x.lua y.lua main.lua

Please can you help me why is bytecode slower?

Upvotes: 0

Views: 295

Answers (2)

Oliver
Oliver

Reputation: 29571

They are very different operations:

  1. lua main.lua: this does
    • reads 3 files,
    • compiles them to bytecode in memory and
    • executes a subset of their bytecode;
  2. luac -o main.luac -s x.lua y.lua main.lua: this does:
    • reads 3 files (the 2 read by main are not read since main is not executed),
    • compiles them to bytecode in memory, then
    • saves three of them to one file on disk.

Writing a file (operation 2) is a slow operation, involving disk access, dumping memory chunks etc; it will be significantly slower than executing some bytecode (operation 1), unless latter is compute intensive.

Upvotes: 1

lhf
lhf

Reputation: 72352

I'm guessing that main.lua does dofile("x.lua") or require"x" and the same for y.lua.

In that case, the second form runs x.lua and y.lua twice.

Upvotes: 3

Related Questions