Closed ncannasse closed 2 years ago
Since deasync
messes with the event loop, it might be a good candidate for such issues?
Uhm, deasync is used by Sys API implementation to implement some network operations, but the slowdown also occur when the process is paused, when for example reading data from the process, seems more like a ffi-napi issue.
@rcstuber tell me if you can confirm by printing a complex value (like a map or array with lots of values) if it's a lot slower with latest ffi-napi VS previous version (might require to downgrade node as well). I think this can be reproduced with nodejs commandline version (without any VSCode)
Sorry I didn't have time yet to test this. I can however confirm that it's currently horribly slow to query class fields (i.e. h2d.Object base) and that the old version I'm running trough the "debugServer" option is much faster (it does not run in Electron's node service though, but a normal Node
process)
Nevermind my previous comment regarding updating npm packages, I was on an outdated commit, however the debugger still freezes when hitting a breakpoint on MacOS with VSCode's electron version being 12.0.13
. Standalone adapter running inside normal node
still works.
On Linux Mint 20.2, VSCode 1.61.2, hashlink-debugger 1.1.2, the debugger breaks on the first breakpoint only. Trying to continue does nothing, though I'm able to step through statements. But in 20 second intervals between each step.
The Hashlink windows is always empty and unresponsive after starting or trying to continue, and reaching the first breakpoint or stepping after it maxes out 2 cores for 20 seconds before completing a step.
Attaching to a hl --debug 6112 --debug-wait out/output.hl
runs the project successfully but without stopping at any breakpoints despite many being set.
You could say that the debugger works just fine as long as you don't have any breakpoints set ¯_(ツ)_/¯
@Ateknia This relates to https://github.com/vshaxe/hashlink-debugger/issues/77
This was indeed a bug with recent node versions when marshalling typed arrays between the JS context and the native library. We fixed that by implementing our own native extension (in hldebug-wrapper) that returns data using strings (sadly) so there's no big slowdown being done by nodejs. v1.3.0+ includes this fix.
Following #97, the debugger is now very very slow. Might be related to the build of native libraries or some other change. I don't think the debugger code itself is responsible for the change in performances.