Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider reducing the time taken to check for LUAZIP signatures on load #552

Open
6 tasks
rdw-software opened this issue Aug 18, 2024 · 0 comments
Open
6 tasks

Comments

@rdw-software
Copy link
Member

rdw-software commented Aug 18, 2024

The startup times are currently longer than they need to be, as the runtime checks for LUAZIP signatures = 50ms added on Linux, even for a simple hello world app. This delay is largely because of several file system accesses, and reading the entire executable into memory via C-API bindings. Not a priority right now, as the runtime is currently much heavier than it should be.

Review afterwards.

TBD:

  • Does it still take significant time to check for LUAZIP apps when the binary size is reduced?
  • Does it take significant time to prepare temp dirs etc for DLL/SO extraction via fs_mkstemp?
  • If so, would moving to FFI bindings for libuv help (might avoid the extra string copy)?
  • Can shorten access time somehow? Maybe use env var to skip check, or seek to the end and peek at the signature?
  • How significant are the differences between HDDs/SSD/NVMe and Linux/macOS/Windows?
  • What performance goal should actually be targeted? Compare to other runtimes/LJ/PUC?
@rdw-software rdw-software moved this to Vague and distant future (Backlog) in Evo.lua: Timeline Aug 18, 2024
@rdw-software rdw-software moved this to It's a bug, NOT a feature! (FIXME) in Evo.lua: Roadmap Oct 18, 2024
@rdw-software rdw-software moved this from It's a bug, NOT a feature! (FIXME) to Improvement is key (Get in here) in Evo.lua: Roadmap Oct 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Improvement is key (Get in here)
Status: Vague and distant future (Backlog)
Development

No branches or pull requests

1 participant