-
Notifications
You must be signed in to change notification settings - Fork 29.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Slow start on ARM #16955
Comments
If I had to guess, it's because the AUR package is compiled with ~1.5s for start-up doesn't seem too out of the ordinary, given the Zero W's hardware. You can't really compare it with cpython: one is a JIT compiler, the other a simple interpreter. |
I believe you're right. Both Is there any way to disable the JIT compiler or to cache some of the JITted code? |
The JIT compiler cannot be disabled. The snapshot is a cache of the JS runtime; apart from that options for caching are limited (in a way that's useful for development, at least.) I'll go ahead and close this out. Can you post follow-up questions to the help repo if you have them? Thanks. |
It's actually quite slow even on fast computer MacBook Air i7: real 0m0.707s Next times: real 0m0.281s |
can we reponen it as it is not solved ? |
Maybe, if you have concrete suggestions for improvement. |
I have a Raspberry Pi Zero W (ARMv6) and an Odroid-C2 (ARMv8), both running Arch Linux ARM.
On these systems node has pretty high startup times.
Latest official binary release of node, 9.1.0
I'm running the latest official binary release of node (9.1.0), as the binary installed from the repositories is way way slower (more on this later).
Node is slow to start on those systems:
Raspberry Pi Zero W (ARMv6)
Odroid-C2 (ARMv8)
nodejs packaged by Arch Linux ARM
The nodejs (v8.8.1) binary packaged by the Arch Linux ARM project is way way slower than the mainstream released binary. An empty script takes longer than 7 seconds (!) and
npm -v
something like 15 seconds (!!) on my ARMv6 machine. I reported the issue on ALARM forum.Yesterday I started looking into that (profiling, stracing, testing various v8 flags etc) and collected a bunch of data before realizing that the upstream release is not that bad. I couldn't get
perf
working and couldn't understand what's going on with the collected data. I'm not sure whether this is interesting here, if it is, I'll share all my findings.This is how Arch Linux ARM builds nodejs for ARMv6: ALARM ARMv6 PKGBUILD
In case anybody is interested, I created an AUR package to install the officially released binaries of nodejs on Arch Linux.
Related issues
I couldn't find much about this issue. Only when I googled
cacheflush
(a syscall that is called a lot of times by the Arch Linux ARM provided binary) I managed to find a few similar issues.Not sure whether they're related, but here they are:
Is this expected?
Is there anything I can do to improve start up times or figure out why they're so slow?
The text was updated successfully, but these errors were encountered: