Comment #9 on issue 2935 by [email protected]: Poor performance in Ember
app Discourse
http://code.google.com/p/v8/issues/detail?id=2935
The plot does not suggest that this has anything to do with deopts. In
fact, deopts rarely cause any execution pauses. It does cause slow
execution though, since we resort to unoptimized code.
What I can tell from the plot is that at the time of the pause, both the
optimizing compiler thread and the main thread are compiling something for
an equally long time, so it's probably the same function they are
compiling. The optimizing compiler thread is doing the regular
recompilation, while the main thread - after waiting for a short while for
the compiler thread - decides to take the matter in its own hands by OSR.
This OSR is what is blocking the main thread. The reason compilation,
regardless of OSR or regular one, is taking so long, can have several
reasons:
- The function to be compiled is simply very large.
- There is a bug in the optimizing compiler, causing it to waste time.
- The function source is structured in a particular way that causes one of
the optimizing compiler's phase to run into a worse-case behavior, taking a
lot of time.
Giving that OSR is disabled for very large functions, I would put my bet on
the latter two causes. You could do this to verify and debug:
- Run chrome with the js-flag --nouse-osr or (the experimental)
--concurrent-osr. This way, OSR either is disabled or runs on the
concurrent thread, hence not blocking any longer.
- Run chrome with the js-flag --trace-opt to find out which function is the
one taking that long, while having concurrent recompilation disabled.
- Then use --hydrogen-filter to single that function out for optimization.
Add --hydrogen-stats to see which phase is taking up all that time.
Note that due to issue 2991, I don't think Chrome on Android is actually
running a concurrent compiler thread. I haven't had the chance to verify
this yet. This doesn't change anything I wrote though.
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.