-
Notifications
You must be signed in to change notification settings - Fork 34
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
Debugging performance with Phoenix LiveDashboard #891
Comments
Just had a quick look, |
yeah maybe for foundational extensions (such as ui_social / ui_reactions / boundaries / etc) we can assume they're enabled? or we can cache the list of extensions loaded? because they are not likely to change that often and they are updated only via settings so updating the cache should be trivial enough? |
I'd not do that, would loose flexibility and the ability to swap them out
seems to assume that elixir/erlang is not already caching or that they're slow, which we just need to measure |
Adding the list of potential N+1 (from logs and honeycomb)
|
added some extra measuring of memory use and execution time during runtime... |
Following some interesting insights about potential performance issues found using LiveDashboard tools, esp. Orion and Flame on.
The functions are recorded during the loading of the Home feed
Bonfire.Common.Extend.maybe_extension_loaded!/1
Execution is pretty fast (99% under 9ms), but (If I understand the graph correctly) it is been called in a range of 160 - 260 times x second across a period of 55 secs (15:21:10 - 15:22:05)
Performance Graph:
Profiler:
zooming out :
My guess is that even if the time execution is very fast, the amount of time the function is called for such a consistent period of time may cause the instance to consistently slow down? Looking at the profiler graph, in first instance I tought that impressive repetition that is shown in the flame graph was caused by a recursive loop somewhere, but maybe it's just a consequence of how modular is bonfire and how modules from different extensions are linked together in a complex view such as the Feed view.
I'm not that good with the BEAM to say tough if this can likely be an issue or not? Feedback are very welcome :)
The text was updated successfully, but these errors were encountered: