Deno: v8 change to QuickJS

Created on 4 Aug 2019  ·  7Comments  ·  Source: denoland/deno

v8 change to QuickJS

All 7 comments

Learned about QuickJS and seems very cool as an embeddable engine.

However, given current condition and focus I don't think anyone on the team will be investing any effort on this atm. QuickJS is currently highly unstable and not production ready (see bug reports in its mailing list https://www.freelists.org/list/quickjs-devel), and it aims for a different goal than V8 (e.g. no JIT, see https://bellard.org/quickjs/bench.html for other some engines that matches QuickJS' target use cases). Deno also relies heavily on some V8 features (e.g. snapshots) and would take immense effort to port to another engine.

I suggest keeping an eye on https://github.com/saghul/qjsuv for now instead.

Also, while QuickJS is quicker than some of the other embeddable engines like DuckTape, it isn't faster than V8 for most common workloads, because of lack of the JIT as well as other optimisations. V8 has a huge team of people behind it, taking real world workloads and tuning them. QuickJS can't ever compete with that. Of course if you have an IoT device, I would certainly consider basing it off of QuickJS.

qjsuv looks awesome

But as Kevin and Kitson write QuickJS isn’t going to be comparable to V8 in performance or features (like devtools). It looks like an awesome piece of software though for certain use cases.

Learned about QuickJS and seems very cool as an embeddable engine.

However, given current condition and focus I don't think anyone on the team will be investing any effort on this atm. QuickJS is currently highly unstable and not production ready (see bug reports in its mailing list https://www.freelists.org/list/quickjs-devel), and it aims for a different goal than V8 (e.g. no JIT, see https://bellard.org/quickjs/bench.html for other some engines that matches QuickJS' target use cases). Deno also relies heavily on some V8 features (e.g. snapshots) and would take immense effort to port to another engine.

I suggest keeping an eye on https://github.com/saghul/qjsuv for now instead.

那 deno 会有对于 IOT 设备的开发计划么?

Learned about QuickJS and seems very cool as an embeddable engine.
However, given current condition and focus I don't think anyone on the team will be investing any effort on this atm. QuickJS is currently highly unstable and not production ready (see bug reports in its mailing list https://www.freelists.org/list/quickjs-devel), and it aims for a different goal than V8 (e.g. no JIT, see https://bellard.org/quickjs/bench.html for other some engines that matches QuickJS' target use cases). Deno also relies heavily on some V8 features (e.g. snapshots) and would take immense effort to port to another engine.
I suggest keeping an eye on https://github.com/saghul/qjsuv for now instead.

那 deno 会有对于 IOT 设备的开发计划么?

Translation: is there any plan of development specifically for IoT devices?

I don't think we have any at this moment.
我不认为我们现阶段有任何计划。

What about the hard and cold start 🤔
Can QuickJS (or txiki.js) beat V8 on those aspects?

The "cold" start in the benchmarks is due to compilation of TypeScript to JavaScript, which requires the TypeScript compiler to be spun up and executed. So spinning up TypeScript under QuickJS would likely result in 35 fold speed decrease in Deno.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

metakeule picture metakeule  ·  3Comments

davidbarratt picture davidbarratt  ·  3Comments

kyeotic picture kyeotic  ·  3Comments

motss picture motss  ·  3Comments

sh7dm picture sh7dm  ·  3Comments