In a project I was working on, I had some performance problems to startup a DBIx::Class schema with about 75 sources. It took about 19 seconds to startup.
After a quick thread in the mailing list, the startup time is now 2 seconds.
The two-part solution is this:
- move all your
load_components()into a common class and use that class as the base for your sources;
- use the schema provided
load_classes(), its very fast. If you need per-source tweaking, do it afterwards looping over
Many thanks to the dbix-class mailing list, in particular mst and Hartmaier Alexander for the tips in the right direction.