-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Major socket io performance regression in 0.4 and 0.5-dev #14467
Comments
This was discovered by @amitmurthy and @shashi while doing some parallel benchmarking and finding poor speedup. |
A few days back I had run a simple benchmark comparing C vs 0MQ(C API) vs Julia TCPSocket vs Julia remotecall_fetch. The test was to basically echo back 1K of data in a loop. The results were:
code here - https://gist.github.com/amitmurthy/945843c9f0c61bc7d9e0 The loop counts are 10^6 for C and 0MQ, 10^5 for remotecall_fetch and 10^4 for TCPSocket. There is obviously something wrong with the TCPSocket test code, it being slower than remotecall_fetch, but I couldn't locate any obvious mistake. C code is 10 times faster than remotecall_fetch, while 0MQ is thrice as fast. |
Maybe related to #14106 |
Do we have all nightly builds still available somewhere? It may be faster to spin up a AWS instance that will bisect against the nightlies rather than |
git bisect throws up
commit - 5863b48 The test code was
Prior to this commit 10^4 1K request-responses take approx 1.0 second. Post this commit, it is 7.0 seconds. cc: @vtjnash |
Bump @vtjnash Running |
Having spent quite a few hours on this, the root cause for the slowdown is still unidentified. This branch - /~https://github.com/JuliaLang/julia/tree/amitm/fixregr - reverts the change. It breaks tests in other ways but the performance regression is vastly improved down to 1.2x (from the current 7x). Approximately 1.5 seconds in the slowdown is due to the |
fixes #14467 performance regression (and some)
the benchmarks show very different improvements, but the one from the OP was definitely the most substantial: |
Awesome! |
moving backport pending label to the PR #14667 |
The following basic socket io code shows a major performance regression in 0.4 and 0.5-dev compared to 0.3.
On 0.3.12: 1 second
On 0.4.2: 10 seconds
On 0.5-dev: 12 seconds
The text was updated successfully, but these errors were encountered: