Code Monkey home page Code Monkey logo

evaluation's Introduction

πŸ”” Important

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.

Why Neutralinojs is better for lightweight apps? β€” proof

Neutralinojs framework was evaluated in comparison with Electron and NW.js considering disk consumption, memory consumption, easiness of development workflow and portability.

Sample applications

Simple Hello World type application is used in each framework on Linux and Windows for the evaluation.

Figure 1: Sample cross-platform apps written using Electron, NW.js and Neutralino respectively on Linux.

Figure 2: Sample cross-platform apps written using Electron, NW.js and Neutralino respectively on Windows.

OS details

  • Ubuntu 18.04.1 LTS
  • Windows 10 Enterprise

1. Disk Consumption

Node Webkit

Linux

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         

Windows

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

Electron

Linux

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

Windows

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

Neutralinojs

Linux

Portable SDK size                 5.8 MB
Portable SDK size (zipped)        1.1 MB
File count                        11

Windows

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.

2. Memory consumption

NW.js

Linux                           ~ 40 - 42 MB
Windows                         ~ 40 - 45 MB

Electron

Linux                           ~ 62 - 65 MB
Windows                         ~ 45 - 50 MB

Neutralinojs

Linux                           ~ 8 - 9 MB
Windows                         ~ 6 - 7 MB  

3. Easiness of Development Workflow

Electron

NW.js

Neutralino

Note - neu-cli offers an automated development workflow

Neutralino Debugging

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.

4. Performance

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.

5. Conclusion

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.

6. Contribution

Refer guidelines here

evaluation's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

evaluation's Issues

Priorities and Issues

I'd suggest abandoning any efforts at integrating specific front-end stacks (e.g. Angular and React) and just integrate HTML, Javascript, and TypeScript. Fundamentally, anyone using those stacks isn't going to want to figure out how to blend their collection of crap with yours, and would probably like the cleanest and most vanilla landscape possible.

I'm also pretty concerned that it looks like your system essentially runs a web-server locally, which is simple but also a security nightmare since you aren't sandboxing the server so no-one can use this product for anything vaguely serious.

What you need to do at minimum is provide a protocol or virtual URL that maps to the file system privately. Perhaps the simplest way to do this would be via a service worker.

Please add an accessibility comparison

Having looked through the documentation and issues for Neurtralino, I can’t seem to find any mention of accessibility (a11y) considerations.

Can you please add a section discussing the accessibility pros/cons of Neutralino compared to Electron, etc.

For a great example of accessibility implemented in an Electron app, please see Visual Studio Code.

Thanks in advance. This is a crucial consideration for us when choosing which technology to use.

Comparison with Tauri

It would be interesting to see a comparison demo added for Tauri. It was created around the same time as Neutralino.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.