rmaz added a comment. In D109632#3037501 <https://reviews.llvm.org/D109632#3037501>, @vsapsai wrote:
> My assumption was that all dependent modules are in memory at this point. And > we visit transitive modules only once, so I don't expect it to be a big > performance hit (though I can be wrong). And deserializing methods from > different modules shouldn't be more work because we are deserializing fewer > methods than with "set dedupe". I added some stats collection for the number of methods deserialized, here are the results from the slowest file in the above table: | **Method** | **# Module File Lookups** | **# Module File Hits** | **# Instance Methods Deserialized** | **# Class Methods Deserialized** | | Baseline | 34023 | 129 | 82005 | 29298 | | Set Dedupe | 34023 | 129 | 13743 | 6781 | | No external | 45265 | 960 | 4010 | 1704 | | So while the no external approach has ~3.5x fewer methods to deserialize, it has to visit ~7.5x as many module files to deserialize methods from. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D109632/new/ https://reviews.llvm.org/D109632 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits