On Sun, May 24, 2026 at 5:21 PM Adrian Johnston via Std-Proposals <std-proposals@lists.isocpp.org> wrote:

For this round of tests I downloaded the latest versions of GCC, Clang and MSVC. I also compared against the current Ubuntu release of GCC and Clang.

CompilerVersionModule BuildModule UseInclude All
g++16.1.03345ms249ms1579ms
g++15.2.02280ms172ms877ms
clang22.16.62014ms52ms1545m
clang20.1.81491ms44ms1142ms
MSVC19.38.331452058ms81ms1295ms

Right now none of the compilers provided submodule support that I saw for the standard library. That means these are single threaded numbers as there is no opportunity for parallelism. These are C++23 unoptimized builds. The module use numbers involve importing the module and then emitting a single trivial function that used the module.

When you say "module build", what does this mean? Is this what happens when you change a command line parameter that forces a rebuild of the C++ standard library module? How often does such a rebuild need to happen?

Also, what "submodule support" are you referring to? The C++ standard doesn't have any submodules; there are just `std` and `std.compat`. And looking at those module use numbers, they seem pretty reasonable; GCC could use some improvement, but the rest are at least an order of magnitude better than includes.