-
Notifications
You must be signed in to change notification settings - Fork 6
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
revisit performance on Win10 + Chrome #146
Comments
@ariel-phet said we can ignore iOS 9 and Win10 + IE. @KatieWoe can you describe the behavior on Win10 + Chrome? Does it feel jerky? What specifically is the test device? Is it an older or newer model computer? @arouinfar can you also evaluate on @KatieWoe's test device? |
It seemed to be a bit jerkier than the other platforms, but it didn't strike me as being too bad. I probably wouldn't have registered it as a problem if I weren't specifically looking for it. It is my work laptop, so it's relatively new. |
@pixelzoom @KatieWoe I tested dev.39 and dev.40 out on a brand new gaming PC running Win 10 with pretty beefy specs (AMD 3700X CPU, AMD Radeon 5700XT GPU, 16 GB 3200 MHz RAM) and I am seeing a similar pattern, as described by @KatieWoe. Chrome was noticeably jerkier than Edge, but I wouldn't call the performance unacceptable. Test case
Edge never budges from 60 FPS. Chrome varied a bit, but hovered around 35-40 FPS. I'm seeing a huge spike in GPU utilization when running the sim in Chrome (up to 90%) compared to Edge (never more than 15%), but no difference in CPU or RAM usage. Screenshots are from dev.39, but the behavior was the same in dev.40. ChromeTroubleshooting information (do not edit): EdgeTroubleshooting information (do not edit): |
Versions <= 1.0.0-dev.40 did not have the performance improvement that was make to repo kite to address Canvas performance issues in pH Scale (see phetsims/ph-scale#83). So I'd like to see if that improvement resulted in any improvement to Gas Properties, since it also uses Canvas for drawing particles. @KatieWoe please test 1.0.0-dev.43?profiler on Win10 + Chrome. Test on your personal machine and on the "brand new gaming PC" mentioned above. Let me know what the frame rate is. Thanks. |
I can't really test the gaming pc since I believe that belongs to @arouinfar. I will test mine and @arouinfar, would you be willing to do so on your machine? |
The earliest I'll be able to test is Friday. If it's been resolved on @KatieWoe's machine, then that's good enough for me. |
@pixelzoom still seems to be about 35-36 |
OK, thanks @KatieWoe. @arouinfar @ariel-phet Do we need to address this issue for 1.0.0 release? I have no immediate ideas for improving performance, and I don't have a Win10+Chrome test machine handy (would need to borrow one from PhET). This is also likely to require some of @jonathanolson's time. |
@pixelzoom I personally do not think this needs to be addressed before the 1.0.0 release. While the performance is smoother on other browsers, the simulation still performs reasonably on Win10/Chrome. Since @ariel-phet is a Win10 user, I think it would be good for him to test it out on his machine and see how it feels. I'll defer final judgement to him. |
@pixelzoom @arouinfar tested on my machine (Win 10 Chrome), and I agree performance is acceptable. That being said, my machine did seem to be getting pretty darn hot...and... Edge will be moving to a "chromium" based browser. This is also by far one of our most popular sims, so it at least seems worthy of some investigation and some of @jonathanolson time. We do not necessarily need to fix, but while the sim is still fresh in people's minds and is getting some attention, it seems worthy of a bit of investigation. Especially since chrome is by far our most popular browser. @pixelzoom I think you could also ask an on campus dev to do some quick profiling. @chrisklus might be open to it. |
Marking as medium, since as mentioned above, I don't think this blocks publication, merely worth of investigation. |
Performance issues can typically involve substantial rewriting or reorganization of code. So while I appreciate that it's not blocking publication, I'd like to understand this issue a little bit (at a minimum, identify where the time is being spent) before moving into RC testing. |
I tested this link https://phet-dev.colorado.edu/html/gas-properties/1.0.0-dev.43/phet/gas-properties_en_phet.html?profiler Test device: Kathy's computer |
@jonathanolson this is the issue mentioned at 7/25/19 status meeting that needs investigation. Thanks in advance for your help. |
It would benefit only if the "outside" CanvasNode isn't included with its bounds all the time. Right now, even if there are no particles outside, Scenery still needs to have its actual Canvas covert the entire upper region. I'm happy to collaborate on this, and
I had been testing the reproduction instructions in this issue, specifically #146 (comment) (which has the histograms on)
I didn't fully dig in to investigate which Paths were causing the most overhead. The pattern followed so far is Let me know if it would help to collaborate on the Canvas or Path issues. |
I reviewed |
I'm also wondering about whether I should be using
I don't totally understand @jonathanolson's response, so will add this to the list of things to discuss with him. |
I discussed on Zoom with @jonathanolson. I'm going to do these optimizations, in this order, to verify that they have a positive impact: (1) Path.computeShapeBounds
(2) ParticlesNode
(3) Array optimization for HistogramModel
(4) ParticlesNode
Optimizations (1) and (2) will benefit the Energy screen only, since they are related to histograms. |
Also noting that we discussed |
The commits above implement optimizations (1) and (2) described above, in master and 1.0 branches. @KatieWoe could you please verify whether there is a performance improvement on Win10+Chrome? Please compare 1.1.0-dev.1 to 1.0.0, running with I'm seeing ~60fps in both versions on macOS + Chrome (MacBookPro15,1), so it's difficult for me to tell whether these optimizations had any impact. |
For quick performance iteration of problems only affected by slower devices, I often throttle Chrome's CPU x4 under the performance tab of dev tools. |
I'm actually getting 55-60 for both now as well. Tried another situation too, just in case. I wonder if another Chrome update helped. |
Thanks @chrisklus. With 4x CPU throttling, I'm still seeing 60fps with both versions on macOS + Chrome (MacBookPro15,1). Thanks @KatieWoe. Unfortunately we have no Chrome version numbers for any of our previously reported results. I don't know what else could be responsible for the 1.0.0 improvement that you're reporting - a Chrome update is a good guess. So... Since the Win10+Chrome performance is now on par with other platforms, I'm going to refrain from making the remaining optimizations that were proposed in #146 (comment), since they are expected to yield negligible improvement. |
To verify in RC testing:
|
All looks good to me rc.1 |
In #144 (comment), @KatieWoe reported performance on a range of platforms (abbreviated below). Frame rates are for the built version running with
?profiler
.Some of these should be examined before RC testing, to see whether they are OK or require attention. The most curious one is Win10 + Chrome.
The text was updated successfully, but these errors were encountered: