Opened 4 months ago
#310 new enhancement
Find Cause of IO Header Compliation Slowdown
Reported by: | ajbeach | Owned by: | |
---|---|---|---|
Priority: | major | Component: | cfa-cc |
Version: | 1.0 | Keywords: | |
Cc: |
Description
Follow up to ae0c1c3bd041ed739c4bdaa8dd6b3cd33d35f692
This change manually creates virtual tables for some of the IO traits. This means call sites only have to resolve one assertion which gives them all the functions they could need. This should speed up the resolution of assertions by a lot, but those wins seem to be eaten up by a further increase in how long it takes to resolve the IO headers. And it already was a significant part of the cost of small files that used IO.
The thing is, we are not sure why this is the case. There was a theory it was all the with clauses, but those are mostly in the cfa files, not the headers. Most other theories hit similar issues in that most of the changes aren't in the headers. This problem has to be pinpointed and then fixed.
If the improvements to the call-site resolution are as good they seem (and they seem good, but they are hard to isolate) and we get this down, we would be solving the source of a lot of the practical compilation speed issues. That would help a lot until the root cause can be addressed.