phetsims / wave-interference

"Wave Interference" is an educational simulation in HTML5, by PhET Interactive Simulations.
MIT License
19 stars 5 forks source link

Poor iPad Performance on Interference Screen #406

Closed JRomero0613 closed 5 years ago

JRomero0613 commented 5 years ago

For https://github.com/phetsims/QA/issues/322 when doing the spot check for the first three screens it was noticed that the performance on iPad on the interference screen was particularly bad. All other screens worked fine and had no performance issues. To replicate this issue navigate to the interference screen, and switch the wave type to either sound wave or light wave. This performance issue does occur with the water wave generation (the performance goes down slightly but the sim is still usable, and the performance is significantly better than the other two wave generation methods). Turn on both wave generators and add as many other tools as possible (timer, field/pressure graph, etc). With these settings applied move the separation slider up and down, you should notice a marked decrease in performance. Attempting to further interact with the sim will prove difficult as the sliders and other options have a large input delay, and the animation is really clunky. The performance decreases as additional tools are included. I have tested these conditions on windows 10, and the performance issue does not occur, leading me to believe it is solely an iPad problem. This seems to be a new issue as the published version of this sim does not experience this performance drop.

arouinfar commented 5 years ago

@JRomero0613 please let us know what iPad model and iOS version you observed this on.

JRomero0613 commented 5 years ago

@arouinfar This was on Leibniz, which is model MGLW2LL/A running iOS 12.3.1.

arouinfar commented 5 years ago

Thanks @JRomero0613.

@samreid Leibniz is an iPad Air 2, so this seems related to #322.

JRomero0613 commented 5 years ago

Here is a video of the performance issues. https://drive.google.com/file/d/1Dl4zaQxNy4kovcULPz9x5ihCaeScDvzo/view?usp=sharing

samreid commented 5 years ago

The published version clears the wave area when changing the separation. But master doesn't clear the wave area. I'm not sure if this was intentional, we'll need to investigate.

samreid commented 5 years ago

This error was introduced in https://github.com/phetsims/scenery-phet/commit/f5250b350b925aa3f4bd1445965bdff6e2cc87f8 when the NumberControl key names were changed. I also have a question: startDrag is no longer an option, it says startCallback must be used instead, but startDrag is listed in SPECIFIC_COMPONENT_CALLBACK_OPTIONS, so I'm wondering if the check for callbackKeysInOptions is incorrect?

samreid commented 5 years ago

I updated the key names and now wave interference seems to correctly mute the wave when using the NumberControl. I confirmed this fixes performance on the iPad 2. Many thanks to @JRomero0613 for identifying this problem!

Reassigning to @JRomero0613 and @KatieWoe to double check the fixes--I think you can use phettest for this. Close if all is well.

KatieWoe commented 5 years ago

This looks ok on the original iPad on master