Compile ScoreVisualStudio extension used to display and highlight compilation profiling data. Know the real compilation cost of your code directly inside Visual Studio. Keep the compile times in check. MotivationCompile times are one of the most important things that affect productivity and iterations while developing in C/C++. Slow compile times can be very frustrating, as they are usual case scenarios in big code productions. Being able to identify which pieces are expensive in the same place you code is key in order to keep tech debt under control. FeaturesBuild and ProfileText Highlight on include costsTool window with full project aggregated dataDetailed Timeline Graph for each translation unitDouble-click any entry in the compile score window to open its timeline. Includers GraphThis window shows all the inclusion stacks that lead to the selected include, ending with the compilation units. Right-click on any include entry and select Show Includers Graph to open its includers graph. Requirements Graph & DetailsThis will parse the given file and display why you need each include and how strong is the binding of this include with the parsed file. This view also merges the cost of the file coming from the build profile data combining the 'why I need this' with the 'how much it costs' in the same place. Navigation controls:
How it worksThe main idea is to get the C++ compiler to output a trace for what happened during the build. We can then aggregate all that data using the Data Extractor in this repository, and consume it with the VS plugin or the standalone app. The data extraction is an independent process in order to allow things like building the score file on a build server and consume it remotely. This can be useful in big codebases where we want the production floor to just use the reports from last night inside VS without having to profile locally. In the VS extension options there is a field to tell the plugin where to find the report file (this is next to the solution file or root folder by default). For more information check the Score Generation Page. Documentation |