▲ | bArray 3 days ago | ||||||||||||||||||||||||||||||||||||||||||||||
Ronsor [1] and reply by seproDev: > Why can't we embed a lightweight interpreter such as QuickJS? > @Ronsor #14404 (comment) The linked comment [2]: > @dirkf This solution was tested with QuickJS which yielded execution times of >20 minutes per video How on earth can it be that terrible compared to Deno? [1] https://github.com/yt-dlp/yt-dlp/issues/14404#issuecomment-3... [2] https://github.com/yt-dlp/yt-dlp/issues/14404#issuecomment-3... | |||||||||||||||||||||||||||||||||||||||||||||||
▲ | jlokier 3 days ago | parent | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
> How on earth can it be that terrible [>20 minutes] compared to Deno? QuickJS uses a bytecode interpreter (like Python, famously slow), and is optimised for simplicity and correctness. Whereas Deno uses a JIT compiler (like Java, .NET and WASM). Deno uses the same JIT compiler as Chrome, one of the most heavily-optimised in the world. That doesn't normally lead to such a large factor in time difference, but it explains most of it, and depending on the type of code being run, it could explain all of it in this case. QuickJIT (a fork of QuickJS that uses TCC for JIT) might yield better results, but still slower than Deno. | |||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||
▲ | ronsor 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
It's horrifying and Google must've worked very hard to kill the performance in other interpreters. | |||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||
▲ | darknavi 3 days ago | parent | prev [-] | ||||||||||||||||||||||||||||||||||||||||||||||
That is interesting. We use QuickJS in Minecraft (Bedrock, for modding) and while it's much slower than V8 it's not _that_ much slower. |