Skip to content

Compile time

René Fonseca edited this page Feb 2, 2020 · 4 revisions

For Visual C++ you can enable compile time logging by setting /Bt+ under "Additional Options" for the project. And you can then extract the times use a command like this (using Windows Subsystem for Linux).

grep -e 'time(.*)=.*<.*>.*[.*]' build.log | sed -r 's/.*time.*\\([^\.]*).*< +[^0-9]*([0-9]+) +- +[^0-9]*([0-9]+) +> +*BB +\[(.*)\]/\1 \2 \3 \4/g' | awk '{ printf "%-10s %-10s %-15s %-15s %s\n", ($3 - $2)/10000000.0, ($1 == "c1xx") ? "FRONT-END" : "BACK-END", $2, $3, $4 }' | sort -n -k1 > compile.log

You will then see a sorted list like this:

1.94815    FRONT-END  10944719470534  10944738952052  C:\devel\base\base\filesystem\FileSystem.cpp
1.94875    FRONT-END  10944739476589  10944758964097  C:\devel\base\base\io\FileDescriptorInputStream.cpp
1.94935    FRONT-END  10944865345967  10944884839453  C:\devel\base\base\opengl\OpenGLContextImpl.cpp
1.95396    FRONT-END  10944588425234  10944607964797  C:\devel\base\base\StackFrame.cpp
1.95722    FRONT-END  10944566549477  10944586121699  C:\devel\base\base\Guid.cpp
1.97614    FRONT-END  10944888131825  10944907893236  C:\devel\base\base\security\Group.cpp
1.98414    FRONT-END  10944722329374  10944742170729  C:\devel\base\base\filesystem\FolderMonitor.cpp
2.01551    FRONT-END  10944633847232  10944654002289  C:\devel\base\base\collection\Set.cpp
2.03347    FRONT-END  10944977223360  10944997558045  C:\devel\base\base\ui\SelectFolderDialog.cpp
2.03698    FRONT-END  10944612898087  10944633267911  C:\devel\base\base\collection\Array.cpp
2.05905    FRONT-END  10944706317307  10944726907835  C:\devel\base\base\dl\DynamicLinker.cpp
2.06806    FRONT-END  10944675541200  10944696221808  C:\devel\base\base\concurrency\Event.cpp
2.07906    FRONT-END  10944658922012  10944679712580  C:\devel\base\base\communication\SerialPort.cpp
2.08143    FRONT-END  10944592059129  10944612873403  C:\devel\base\base\Timer.cpp
2.12053    FRONT-END  10944825197555  10944846402850  C:\devel\base\base\net\InetAddress.cpp
2.12921    FRONT-END  10944823856295  10944845148346  C:\devel\base\base\net\HTTPSRequest.cpp
2.12986    FRONT-END  10944678663553  10944699962120  C:\devel\base\base\concurrency\MutualExclusion.cpp
2.13597    FRONT-END  10944703751432  10944725111087  C:\devel\base\base\concurrency\Thread.cpp
2.17846    FRONT-END  10944688645024  10944710429654  C:\devel\base\base\concurrency\RecursiveMutualExclusion.cpp
2.19442    FRONT-END  10944755490845  10944777435022  C:\devel\base\base\io\Pipe.cpp
2.20597    FRONT-END  10944681034349  10944703094022  C:\devel\base\base\concurrency\Process.cpp
2.22031    FRONT-END  10944847035166  10944869238223  C:\devel\base\base\net\Socket.cpp
2.23269    FRONT-END  10944803716990  10944826043903  C:\devel\base\base\mem\Heap.cpp
2.23489    FRONT-END  10944839973025  10944862321887  C:\devel\base\base\net\MultipleSockets.cpp
2.23762    FRONT-END  10944694868584  10944717244753  C:\devel\base\base\concurrency\Semaphore.cpp
2.2513     FRONT-END  10944733355983  10944755869004  C:\devel\base\base\io\File.cpp
2.35593    FRONT-END  10944631528405  10944655087680  C:\devel\base\base\collection\Map.cpp
Clone this wiki locally