joist-domain was designed to start as quickly as possible, especially on large schemas that are typical of enterprise projects.
For example, running 1 JUnit test to save an Address object on a ~200-table schema:
joist-domain starts 94% faster than Hibernate on this large, ~200-table schema.
Most of the remaining startup time, ~0.3 seconds worth, is the database connection/pool getting established, so it is unlikely to go away.
Notes:
The first test is just inserting 1 object-per-commit, X number-of-times:
For this, Joist and Hibernate are pretty similar.
The next test is inserting X objects-per-commit:
Joist is ~60-70% faster than Hibernate when bulk-inserting items.
(Technically Joist cheats here because, although both Joist and Hibernate use the PostgreSQL sequences for id generation, Joist grabs all of the new entity ids with one bulk SQL statement while Hibernate uses 1-query-per-entity.)
Finally, updating X objects-per-commit:
Joist is ~30% faster than Hibernate when bulk-updating items.
Notes:
joist.perf project, make sure to run FeaturesCycle to setup the features database, then run ant run to kick off Japex