Stdlib Performance Advisor
Goal
Detect patterns in the standard C++ library useage that affect application performance. If there is a known alternative, advise it to the user. Otherwise just produce a performance statistic table.
Branch Status and Submit Policy
All submits to libstdc++-v3/include/profile and libstdc++-v3/libprofc++ must be approved by Silvius Rus rus@google.com.
- Trunk maintainers are allowed to approve changes to this branch, the same way they do on trunk.
- Before submitting, you must run the following tests:
- "make -k check" in the top level directory (compiler, not only libstdc++).
- "make -k check-profile" in the top libstdc++-v3 directory.
- A small number of failures is allowed as long as they are documented.
Plan
- Port code from prototype (detection of wasteful hashtable resizing) written by Lixia Liu. Done.
- Write design doc. First draft sent for discussion.
- Discuss design doc with community. Started.
- Add code to detect five suboptimal usage patterns. Partially done.
- Add trace IO library. Not started.
- Rewrite the analysis tool in C++. Not started.
- Add formal cost model. Not started.
- Add 10 more diagnostics. Not started.