Closed
Description
Trying to speed up compilation times a bit. The first step is an analysis using ClangBuildAnalyzer, which I ran over the entire repository, with tests and examples enabled.
ClangBuildAnalyzer output here:
https://gist.github.com/vittorioromeo/ab81ce00927149737398f97d3948b62e
Most of the time is spent in these instantiations, would be nice to try and optimize those:
**** Template sets that took longest to instantiate:
71289 ms: sqlite_orm::internal::iterate_tuple<$> (2459 times, avg 28 ms)
60327 ms: sqlite_orm::internal::serialize<$> (1782 times, avg 33 ms)
51614 ms: sqlite_orm::internal::storage_t<$>::sync_schema (162 times, avg 318 ms)
46721 ms: sqlite_orm::internal::storage_t<$>::sync_table<$> (270 times, avg 173 ms)
36778 ms: sqlite_orm::internal::storage_t<$>::prepare<$> (797 times, avg 46 ms)
36467 ms: sqlite_orm::internal::storage_t<$>::prepare_impl<$> (797 times, avg 45 ms)
24957 ms: sqlite_orm::internal::storage_t<$>::create_table<$> (246 times, avg 101 ms)
24890 ms: sqlite_orm::internal::storage_t<$>::select<$> (346 times, avg 71 ms)
24793 ms: std::forward_as_tuple<$> (1914 times, avg 12 ms)
21827 ms: std::tuple<$> (3978 times, avg 5 ms)
18537 ms: std::__and_<$> (10567 times, avg 1 ms)
11696 ms: std::_TupleConstraints<$>::__is_implicitly_constructible<$> (5385 times, avg 2 ms)
10446 ms: sqlite_orm::internal::table_t<$>::for_each_column<$> (972 times, avg 10 ms)