-
Notifications
You must be signed in to change notification settings - Fork 18k
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
runtime: parallel json benchmark leads high CPU usage when go version > 1.15 on ARM64 #60043
Comments
Could you show the benchmark results using benchstat format? Does the benchmark execution time change? Thanks. |
The benchmark result for go 1.15.7:
The benchmark result for go latest version:
The benchmark execution time change using by benchstat:
|
Can someone help to explain this issue ? |
cc @golang/arm @golang/compiler |
My test results are slightly different from yours.
I didn't dig into why the CPU utilization is so high, but the test data looks reasonable? My test machine is a bit different with yours.
|
Maybe you can try to test it again by git checkout before commit runtime: add consistent heap statistics |
ping @erifan |
I found a problem of CPU performance degradation on ARM64 platform. The parallel json benchmark in the latest go version resulted in a 50%+ increase CPU usage compared to the old version 1.15.
This can be easily reproduced on ARM64:
cd go-json-bench && make bench
and observe CPU usageMy machine configuration:
The benchmark result is below:
CPU usage is about 2000% for go 1.15.7:
CPU usage is about 3000% for go latest version:
Finally, through
git bisect
search, I found that fe7ff71185cf was the first commit that leads performance degradation, but I was not clear why this commit had such a big impact on CPU performance.The text was updated successfully, but these errors were encountered: