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

Profile Sqitch to Identify Performance Bottlenecks #69

Closed
theory opened this issue Jan 4, 2013 · 3 comments
Closed

Profile Sqitch to Identify Performance Bottlenecks #69

theory opened this issue Jan 4, 2013 · 3 comments
Labels
Milestone

Comments

@theory
Copy link
Collaborator

theory commented Jan 4, 2013

Sqitch is slow. And not just because it talks to the database. I suspect it's slow mainly because of Moose constraints. But we should profile it to be sure.

Best approach is probably to run the test suite with Devel::NYTProf. And if Moose is in fact the problem, maybe see about the feasibility of switching to Moo.

@theory
Copy link
Collaborator Author

theory commented Aug 5, 2014

Switched from Mouse and Moose to Moo in dbb22bd for another 40% or so speedup on startup. This merge also defers the loading of DateTime until it's needed, because it loads all the locales it can, which is an additional overhead.

@theory
Copy link
Collaborator Author

theory commented Aug 5, 2014

Performance is much better with Moo. If necessary, we can look into other possible performance improvements:

  • Figure out how to get DateTime to load only the locales it needs.
  • Eliminate most Moo isa parameters, and therefore the overhead of type-checking. Maybe find a way to keep it turned on when the $HARNESS_ACTIVE environment variable is set?

@theory
Copy link
Collaborator Author

theory commented Feb 12, 2015

Gonna call this one done. DateTime is an independent fix, and the switch to Moo was a huge improvement. We can revisit in the future, but no need to keep tracking it for 1.0.

@theory theory closed this as completed Feb 12, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant