-
Notifications
You must be signed in to change notification settings - Fork 844
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
pause in read of /proc/self/maps #708
Comments
Thanks for the detailed write-up, we'll need to investigate this one. There was a bug filed internally on something similar where address space enumeration took a long time querying protection bits and it may be related. |
@stehufntdev - Just a heads up also since you mentioned protection bits. On WSL the protection bits for WSL:
Native:
Note the missing |
Thanks for the heads up, yes this is something we are tracking. If the chromium scenario or anything are interesting please give us feedback on the user voice page so we can prioritize. |
Most of the slowness was related to #776, and after that change the runtime of a Chakra test, test/Basics, dropped from 53 seconds to 20 seconds on my test vm. To get the runtime closer to native we'll need to look at targeted fixes for caching information for /proc/self/maps. |
Awesome. Thanks for the update -- I wasn't really following #776. I assume the remaining slowness is related to #1671. Can I talk you into spending a few minutes and changing that '-' to a 'p' in the source for the next roll? It will be wrong for shared memory and right for private. Being right most of the time is better than being wrong all of the time. And it will unblock some stuff that just wants the string to be well formed. |
@therealkenc - Stephen's fix addresses #1671 as well. |
Thanks for the reminder Ken, I'll take a look at adding the 'p'. When the procfs support was added we didn't have all the plumbing required but I'm pretty sure we have it all now. Marking this as a bug for tracking. |
We submitted a fix for converting the '-' to a 'p' or 's', and it should be out in insider builds soon. |
@stehufntdev I just noticed the access permissions showed up in 16215. Thanks for getting this in. Given we're deeming the performance issue addressed I think this one can be marked fixedinsiderbuilds and closed. There are other issues open that can cover further "allocate all the things" perf improvements. |
Great, thanks for following up. |
MS recently did a nice edge dev blog post on their progress on node-chakracore and I thought I'd see what WSL syscalls might be problematic, given that v8 works.
Out of the gate it fails on #597 because it tries to
mmap
32GB (sic) of anonymous memory for reasons. Upping the NT paging file size does get you past that.WSL then does admirably well with what's thrown at it, but makes very slow progress, because a
read()
syscall pauses when/proc/self/maps
is queried. This anstrace
ofnpm install <anything>
:That first
read
afteropen
at:58.100468
pauses for just over a second (1021ms) before proceeding. There are many hundreds (if not thousands) of such calls.This is not worth looking into as a priority for obvious reasons, but maybe it tweaks a "I bet I know what's happening there" inspiration from someone. Installing the pre-release linked above is trivial.
The text was updated successfully, but these errors were encountered: