ClangBuildAnalyzer
stl-header-heft
ClangBuildAnalyzer | stl-header-heft | |
---|---|---|
6 | 5 | |
931 | 53 | |
- | - | |
5.7 | 0.0 | |
2 months ago | over 3 years ago | |
C++ | Python | |
The Unlicense | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ClangBuildAnalyzer
-
Speeding up C++ build times
> On another note: C++ compiler should by default keep statistics about the chain of #include's / parsing during compilation and dump it to a file at the end and also summarize how badly you're re-parsing the same .h files during build.
Not exactly that, but do you know clang's -ftime-trace and tools like https://github.com/aras-p/ClangBuildAnalyzer which help analyzing where time is actually spent? (In small repeated headers I don't see much of a problem, but they of course may contain not so small things ...)
-
Build Insights Now Available in Visual Studio 2022
You can also use the following when you want to inspect multiple files: https://github.com/aras-p/ClangBuildAnalyzer
-
IncludeGuardian - improve build times by removing expensive includes
ClangBuildAnalyzer reports on parsing, build, and link time, whereas IncludeGuardian only reports on parsing time.
-
"Fast Kernel Headers" Tree -v1: Eliminate the Linux kernel's "Dependency Hell"
https://github.com/aras-p/ClangBuildAnalyzer is a very useful tool to quantify the cost of different headers (and other costly parts of the compile such as template instantiations). It doesn’t help with actually fixing such problems, but it’s a pretty good ruler to measure where the time is spent.
-
How to understand output of gcc -ftime-report
If you can compile with Clang, I suggest you to try ClangBuildAnalyzer
stl-header-heft
-
"Fast Kernel Headers" Tree -v1: Eliminate the Linux kernel's "Dependency Hell"
The older I get the more I think #include in public headers needs to have a whitelisted regex git push filter, and the permitted whitelist of permitted includes is small and excludes most of the standard library. https://github.com/ned14/stl-header-heft, after all.
-
C++23: Near The Finish Line
As you know, every two years or so I update https://github.com/ned14/stl-header-heft and historically the only STL to shrink in terms of token count has been yours, albeit starting from a high initial base. libstdc++ consistently grows. I look forward to discovering how VS2022's STL compares to preceding editions.
-
C++ Library Include Times: Time it takes to #include any standard library and other headers
You may want to have a look at https://github.com/ned14/stl-header-heft too :)
-
zpp::throwing<T> - Implementing "almost" C++ exceptions with coroutines
string_view drags in a ton of the STL. string_view cannot deallocate on destruction. See https://github.com/ned14/stl-header-heft.
-
Why is this channel less active?
Even million line C++ codebases can compile from scratch within minutes if your header files never include anything not in the least impact headers list from https://github.com/ned14/stl-header-heft.
What are some alternatives?
Bear - Bear is a tool that generates a compilation database for clang tooling.
papers - ISO/IEC JTC1 SC22 WG21 paper scheduling and management
sol2 - Sol3 (sol2 v3.0) - a C++ <-> Lua API wrapper with advanced features and top notch performance - is here, and it's great! Documentation:
stdBLAS - Reference Implementation for stdBLAS
ccache - ccache – a fast compiler cache
papers
include-what-you-use - A tool for use with clang to analyze #includes in C and C++ source files
simdjson - Parsing gigabytes of JSON per second : used by Facebook/Meta Velox, the Node.js runtime, ClickHouse, WatermelonDB, Apache Doris, Milvus, StarRocks
plf_colony - An unordered C++ data container providing fast iteration/insertion/erasure while maintaining pointer/iterator validity to non-erased elements regardless of insertions/erasures. Provides higher-performance than std:: library containers for high-modification scenarios with unordered data.
cppcoro - A library of C++ coroutine abstractions for the coroutines TS
zapcc - zapcc is a caching C++ compiler based on clang, designed to perform faster compilations