Clang build analysis tool using -ftime-trace
UNLICENSE License
Published by aras-p about 1 year ago
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.
Published by aras-p about 1 year ago
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.
Published by aras-p over 2 years ago
Improvements
--version
argument (#82)Fixes
Full Changelog: https://github.com/aras-p/ClangBuildAnalyzer/compare/v1.3.0...v1.4.0
Published by aras-p almost 3 years ago
Improvements
--all
option to parse all JSON files (#47)Fixes
Build & Internal
main
Full Changelog: https://github.com/aras-p/ClangBuildAnalyzer/compare/v1.2.0...v1.3.0
Published by aras-p over 4 years ago
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.
Published by aras-p over 4 years ago
Improvements:
77c97
), and allow different clang executable names (#34).Fixes:
LDFLAGS
(#29).Published by aras-p over 4 years ago
Initial release that corresponds to the blog post.