-
Notifications
You must be signed in to change notification settings - Fork 3.1k
optimise completeSilentlyAndCheckErroneous #5832
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
Conversation
How should I read the numbers? What's |
Also, the confidence intervals of the *MS numbers seem to be too large to show a measurable difference here. |
HI @lrytz the test is run 60 times-
the "count" column is the number of samples remaining after the above filtering the "AllWallMS" is taken as the mean ( and ranges) for the start and end of the phase measured via System.nanotime the "CPU_MS" in taken from the mxBean from the current thread. This is lower granularity, but useful for detecting IO pauses etc. We also gather the user mode time for the thread, but this is not displayed in the results above "Allocated" is taken from the thread allocation counter, an indicates the number of bytes allocated in the heap expressed in MB |
as for the actual number reported - the Allocated show a slight reduction, about what I expect, but the CPU increase is unexpected and I will dig into this. It is on the border of confidence ( 1.6% mean increase, with a range in measurements of ~1%) I didn't expect to see much change in performance, but certainly not an increase As the only change is from
to
NoReporter does less work ( if called) I would love to understand what is wrong with the rationale above |
Thanks @mkeskells for these explanations. I'm wondering why did you start optimizing this particular spot, did it show up in profiling? I think
Check if you see the desired speedup after making the method final. |
@lrytz Not inlined - doh schoolboy error :-( too used to having warnings as fatal from the day job. Will retry, and add a longer run, and post the results when I have them |
Result after 200 cycles. _2 is with e0d2830
machine blue screened some time after this after so cpu figures are suspect. Will rerun |
reran. Not sure why the results have stepped (upgrades?). The comparison is the important part though
|
Looks good to me, thanks! IUC, this saves around 3% of the Would you like to get the first commit ( |
@lrytz can we add the additional documentation with the contribution for the profiler? Hard to describe how to use it without the other part of the puzzle there is an earlier version in #5760 of the generation, but that doesnt have the MT support, and has a few more bugs and less feature, but some things in that branch that relate to your CI, so I have created another PR #5848 so you can see the changes to the RunnableInPhase, but no documentation in there yet to generate the result summary the tool that we use is https://github.com/rorygraves/perf_tester I think that as a CI task, but not sure how that would work with the infra that you have - it would need to run on the dedicated hardware as a performance test. What could we do to link this to your existing performance test work - which I think only runs after merge |
Yes, that sounds good. Can we move this class out of this PR then? |
e0d2830
to
980560d
Compare
/rebuild |
rebased and removed profiling commit |
@lrytz can this PR be merged? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, looks good!
performance result - disappointing. I havent looked into the detail as it why -