Skip to content
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

Servo Experiments do not perform well #14415

Open
digitarald opened this issue Nov 29, 2016 · 14 comments
Open

Servo Experiments do not perform well #14415

digitarald opened this issue Nov 29, 2016 · 14 comments

Comments

@digitarald
Copy link

@digitarald digitarald commented Nov 29, 2016

Tested on OSX 10.12.1 (16B2555), MacBook Pro (Retina, 15-inch, Early 2013) using Servo 0.0.1-4021d05

  • Tiles has long lags while fading tiles
  • Dogetest stops working at 26
@jdm jdm added the I-perf-slow label Nov 29, 2016
@jdm
Copy link
Member

@jdm jdm commented Nov 29, 2016

The doge test works fine for me on linux (although it does go into a bullet-time effect if you move the mouse).

@jdm
Copy link
Member

@jdm jdm commented Nov 29, 2016

The tiles demo does lag for me on linux, however.

@jdm jdm added the C-reproduced label Nov 29, 2016
@jdm
Copy link
Member

@jdm jdm commented Nov 29, 2016

cc @pcwalton if you're looking for some simple perf profiling to tackle.

@ibrokemypie
Copy link

@ibrokemypie ibrokemypie commented Dec 1, 2016

Dogetest only gets to 7 before completely freezing for me. OSX elcappitan, Macbook pro mid 2012

@digitarald
Copy link
Author

@digitarald digitarald commented Dec 1, 2016

There is also some weird interaction with moving the mouse. Dogetest worked well when my mouse did not move after launching the demo. This did not apply to Tiles however.

@chulkilee
Copy link

@chulkilee chulkilee commented Dec 1, 2016

Still exists at 0.0.1-e315da0 (from nightly dmg)

@glennw
Copy link
Member

@glennw glennw commented Dec 2, 2016

I tried the tiles demo on Linux + servo master. It is certainly very laggy.

I ran the webrender profiler, and all the WR threads appear to running well above 60 fps, so it seems unrelated to rendering performance.

Perhaps something changed in the way rAF callbacks are dispatched, or something in the style system? (I know that the tiles demo is particularly heavy on styling). Any ideas @Manishearth or @metajack ?

@Manishearth
Copy link
Member

@Manishearth Manishearth commented Dec 2, 2016

Nothing that I'm aware of. @pcwalton ?

@Permutatrix
Copy link
Contributor

@Permutatrix Permutatrix commented Dec 2, 2016

I couldn't reproduce the Dogetest regression, but I bisected the Tiles one because I was bored and didn't feel like actually doing anything. It seems the mindset of a sleep-deprived teenager is useful for something after all.

The great majority of the hit came from #13866. It was getting noticeably choppy at times before that, which is probably worth looking into, but it was still very smooth for the most part on my PC.

@glennw
Copy link
Member

@glennw glennw commented Dec 2, 2016

@Permutatrix Thanks for taking the time to look at it! @bholley @Manishearth Is there any easy fix we can make for this to get the demo running well again in time for next week?

@jasonwilliams
Copy link
Contributor

@jasonwilliams jasonwilliams commented Dec 9, 2016

Dogetest seemed to work well for me on OSX Yosemite

@bholley
Copy link
Contributor

@bholley bholley commented Dec 10, 2016

@emilio Says that the current transition infrastructure probably can't do better than this for now, but I'll let him comment.

@emilio
Copy link
Member

@emilio emilio commented Dec 10, 2016

Yeah, the current state of our transitions infra isn't great right now. Cool part is, there's work to do transitions in Servo fully conformant to the transitions spec.

First of all, thanks @Permutatrix for taking time to look at it. I had taken for granted that this regression had been caused by #13202, (maybe the choppiness came from there? worth looking into), and we've had long discussions about the rule tree perf, so your investigation kind of a relief.

To state the problem more clearly, that code that @bholley removed in that PR was pretty much a hack.

Right now Servo does OMT transitions, which run unsynchronized with script, which is wrong. The code that should take care of restyle the element should be the layout code that expires the animations, but of course that is not happening right now, because it'd be racy. Instead we wait to dirty it when we're back in script, which is also wrong and kind of a hack.

That is tracked in #13865, and as I said there's work to do that properly coming in.

Thanks for looking into it again :)

@nox
Copy link
Member

@nox nox commented Oct 7, 2017

First one is still laggy, second one doesn't even display the doges anymore. 😢

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
You can’t perform that action at this time.