Therefore each Electron.js application is essentially a separate Web browser and Web server installed on your machine – as many Electron applications you are running – as many browsers and servers you have in your RAM. Yet each Electron application runs at least three separate processes on your machine.
But what if to replace Chromium in Electron by Sciter?
To answer this I’ve created very basic Sciter as NodeJs native module.
In order to get some stats I’ve compared Microsoft Visual Code, as typical Electron.Js application, with the “IDE” sample from Sciter’s SDK that has similar UI structure:
Here are some numbers for you to consider:
|Distribution size (zip)||12mb||60mb||5 times smaller|
|Size on disk||15mb||90mb||6 times smaller|
|RAM consumption||50mb||318mb||6 times less|
|N of processes||1||8||8 times less|
|Startup time||34ms||670ms||12 times less|
I think the numbers are at least motivating.
Ideal Sciter / Node integration model
Sciter is made of the following modules: HTML, CSS, Graphics, Script compiler and VM, libUV and script runtime.
And NodeJs is essentially V8 script engine, libUV plus script runtime.