nw.js
nw.js copied to clipboard
Critical nw2 regression: Major (10x) slowdown post-0.42.3 (where nw2 is enabled by default--disabling it restores original performance)
Issue Type
Before opening an issue, please search and see if it has already been raised.
-
[x] Bug Report
-
[ ] Feature Request
-
[x] Successfully reproduced against the latest version of NW.js?
Current/Missing Behavior
Most versions (tried everything between 0.42.4 up to 0.70.1, sometimes skipping a few versions) are significantly (10 or more times) slower than 0.42.3 and lower versions when drawing a busy SVG-based canvas using scripted events. Evidence suggests this is due to nw2 features being enabled by default starting with 0.42.4 onward. Disabling nw2 on newer versions makes performance comparable.
Expected/Proposed Behavior
Speed of running scripted events that populate the canvas should not be significantly different.
Additional Info
- Operating System: any (tested on Linux, OSX, and Windows)
- NW.js Version: 0.42.4 and newer have problems (0.43.0-beta1 being exception as it was released in proximity to 0.42.3)
- Repro Link: Best thing is to download my software (Pd-L2Ork) ideally on Windows or Linux where swapping nw.js versions is a matter of replacing a single folder inside installed application's folder. The app already ships with nw.js 0.42.3.
You can download it from: http://l2ork.music.vt.edu/main/make-your-own-l2ork/software/ (click on the "Complete (a.k.a. ‘Burrito Supreme’) Installer" section to expand it and download a version for the appropriate platform)
Replacing nw version: On Linux nw version is located in /usr/lib/pd-l2ork/bin/nw folder. On Windows in C:\Program Files (x86)\Pd-L2Ork\bin\nw. Mac is difficult since the files are all mixed, so I discourage testing on that one, even though results are the same. Just replace it with SDK (not runtime) of any other version by renaming that version's folder to nw and replacing this one. Then restart the app.
To open something graphically intense: start Pd-L2Ork (pd-l2ork on command line or double-click on the shortcut). Help (rightmost item in the menubar)->Help Browser->scroll to the bottom and click on L2Ork Tweeter and then again on L2Ork Tweeter (right below the CHANGELOG.txt).
Observe the time it takes to open and populate the window.
As an alternative, one could probably build a simple scripted example that populates the canvas with svg shapes (not sure if the slowdown is tied to strictly SVG, however) and run the same with the latest nw.js with nw2 enabled and disabled and observe the perfromance difference.
- Code snippet: N/A (I provided in the comments the SVG snapshot of the page, but that does not make the difference--the real difference is scripting that now takes way longer using nw2 than when using nw1)
- Crash report:No crash, just a major slowdown.