Cache common instances by ilevkivskyi · Pull Request #19621 · python/mypy
These few types account for a significant proportion of all types created:
stris just everywhereobjectandfunctionare used as fallbacks in many placesintandboolare coming from various literals
This gives around 1.5% performance improvement on my desktop. This is a bit ugly, but also looks like an easy win. Note that during semantic analysis I am caching types more conservatively, just in case some plugins modify them in place (named_type() is a part of semantic analyzer plugin interface).