-
Notifications
You must be signed in to change notification settings - Fork 5.3k
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
deno_tcp latency is worse than node_tcp #2700
Comments
Ref #2758 |
Can this be closed? |
Yes - this is fixed. |
there appears to be a relatively recent (?) regression: |
This divergence seems to have started with fec1b2a (first commit changing the OP layer) So this is on my radar, but it's curious that there's a big regression in latency. I'll try to investigate this and correct it for 1.9 (and ideally exceed the original latency) |
@hayd I believe I've identified why TLDR: Ultimately it's a combination of a few factors that should not be present in
So removing these serde_json-isms like I've done in #10009 should fix the regression and likely deliver better performance. |
After further digging, the P99 latency increase appears to be caused by the promiseTable change. #9843 changed the promiseTable from a JS Object to a Map, which causes higher GC-pressure and thus higher tail latencies. Checking out the promise ring (#9979), hugely closed the P99 delta between node and deno on the tcp bench |
Thanks to @bartlomieju's work in #2689 we're able to clearly see now that deno_tcp has worse 99% tail latency than node_tcp.
Previously I believed that our max latency was on par with Node's. Back in April, @piscisaureus did work to improve our latency numbers, but apparently it was not enough.
This is a very good place to investigate performance problems.
Note that deno_core_single does not exhibit the latency problems! deno_core_multi is worse, but not as bad as deno_tcp....
The text was updated successfully, but these errors were encountered: