Please notice that the following comparison data may not match with the latest releases of Neutralinojs, NW.js, and Electron. This benchmark was done in 2018. Please check https://github.com/Elanis/web-to-desktop-framework-comparison for a better benchmark and comparison.
Neutralinojs framework was evaluated in comparison with Electron and NW.js considering disk consumption, memory consumption, easiness of development workflow and portability.
Simple Hello World
type application is used in each framework on Linux and Windows for the evaluation.
Figure 2: Sample cross-platform apps written using Electron, NW.js and Neutralino respectively on Windows.
- Ubuntu 18.04.1 LTS
- Windows 10 Enterprise
Zipped SDK size 95.8 MB
Project Size 1 KB
Application bundle 97.2 MB
Application bundle (zipped) 36.9 MB
File count of project 5
Zipped SDK size 72.7 MB
Project size 2 KB
Application bundle 78.1 MB
Application bundle (zipped) 32.3 MB
File count of project 5
Build package 51.53 MB
node_modules count 147
File count of project 1539
Project size 136.4 MB
Application bundle 128.6 MB
Application bundle (zipped) 51.5 MB
Build package 53.16 MB
node_modules count 180
File count of project 1368
Project size 125 MB
Application bundle 118 MB
Application bundle (zipped) 50.4 MB
Portable SDK size 5.8 MB
Portable SDK size (zipped) 1.1 MB
File count 11
Portable SDK size 5.53 MB
Portable SDK size (zipped) 1.01 MB
File count 11
SDK and application bundle are similar things in Neutralino. We will be introducing an application builder CLI soon!. Alternatively project can be zipped as the application bundle. Special case is that a single application bundle will work on both platforms unlike other frameworks do.
See proof directory for sample sources and binary releases.
Linux ~ 40 - 42 MB
Windows ~ 40 - 45 MB
Linux ~ 62 - 65 MB
Windows ~ 45 - 50 MB
Linux ~ 8 - 9 MB
Windows ~ 6 - 7 MB
Note - neu-cli offers an automated development workflow
Neutralino app is served via a socket. Therefore debugging can be done using a web browser.
Figure 3: Debugging a Neutralino based app using Google Chrome.Neutralino's performance basically depends on the performance of C++ server implementation. Here is the result for Neutralino.os.runCommand
for ls
command for 100 samples. It took average 6 miliseconds to respond ls
bash command.
Label | # Samples | Average | Median | 90% Line | 95% Line | 99% Line | Min | Max | Error % | Throughput | Received KB/sec | Sent KB/sec |
---|---|---|---|---|---|---|---|---|---|---|---|---|
HTTP Request | 100 | 6 | 6 | 8 | 9 | 11 | 4 | 13 | 0.000% | 87.87346 | 12.36 | 22.05 |
TOTAL | 100 | 6 | 6 | 8 | 9 | 11 | 4 | 13 | 0.000% | 87.87346 | 12.36 | 22.05 |
Result was captured by Apache JMeter using this test plan. See more details about this report here.
According to the results of this expertiment Neutralino can be used as a lightweight alternative for Electron and NW.js. Furthermore another experiment needs to be done by using somewhat large cross platform application such as draw.io. There are some drawbacks such as Windows edition is based on IE etc.
Refer guidelines here