Releases: aras-p/ClangBuildAnalyzer
1.5.0: Improved "Expensive headers" info
Previously, the "expensive headers" section listed several individual include paths to a particular header, all the way from some source file. But that does not help much to figure out how a popular header is most often included. So now, for each expensive header it lists what are the most-happening include chains to it. For example:
261580 ms: /usr/include/c++/v1/algorithm (included 3389 times, avg 77 ms), included via:
341x: BKE_context.h BLI_string_ref.hh string
180x: DNA_mesh_types.h BLI_math_vector_types.hh array
125x: DNA_space_types.h DNA_node_types.h DNA_node_tree_interface_types.h BLI_function_ref.hh BLI_memory_utils.hh
says that <algorithm>
was included 3389 times in total, and most often via: 341 times because something included BKE_context.h
(which in turn includes BLI_string_ref.hh
which included <string>
which in turn included <algorithm>
), then 180 times because something included DNA_mesh_types.h
and so on.
1.4.1 (2023 Aug): Fix some STL headers not being reported
Fixed the case when STL headers that are without extension (e.g. <vector>
), when being installed in path that has a .
somewhere in the folder names, were not correctly included into "expensive headers" report.
1.4.0 (2022 Mar): Improvements & Fixes
Improvements
- Add
--version
argument (#82)
Fixes
- Normalize include paths, to stop headers being included via different relative paths reported as different headers (#84, #83)
Full Changelog: v1.3.0...v1.4.0
1.3.0 (2022 Jan): Improvements & Fixes
Improvements
- Add
--all
option to parse all JSON files (#47) - Improve support for recent LLVM/Clang versions (12.x, 13.x) (#80)
Fixes
- Fix analyzing massive builds (#38)
- Fix handling of symbolic links while scanning for json files (#58)
- Fix memory leak in buffered writer (#65)
Build & Internal
- Fix builds with more recent C++ compiler / STL versions (#53)
- CMake fixes and tweaks (#42, #62, #64)
- Update to a more recent simdjson version (#52, #54)
- Fix compile warnings (#39, #66) and general massaging of the code (#78)
- Github Actions CI improvements (#70)
- Main branch is now called
main
Full Changelog: v1.2.0...v1.3.0
1.2.0 (2020 Mar): Optimizations for Large Builds
3x faster, 15x lower memory usage, 4x smaller file size.
However, changed file format of data files produced by --stop
and used by --analyze
(was JSON before, now binary).
Data file stores deduplicated strings, JSON file processing is multi-threaded, switched to faster JSON parser, improved hash tables, other general optimizations.
See PR #37 for details.
1.1.0 (2020 Feb): Improvements & fixes
1.0.0 (2019 Sep): Initial release
Initial release that corresponds to the blog post.