This table shows which release will be the first to provide which functionality, supported by which subsystem. Note that this is always subject to modification. Note also that these subsystems are logical organizations for our production of the software, and do not necessarily represent the user's view of the software organization.
Identification and purpose of subsystems¶
The current list of subsystems includes:
- data collection: everything that must be run on the same platform as the program being profiled. This includes:
- collection of call stack data
- collection of
- post-processing for improved function name identification
- running of C++ name demangling (
- callgraphing: programs that take the text output of the data collection step and produce visual displays of the call graph data
- reformatting: programs that take the text output of the data collection step and reorganize the data into SQLite3 databases.
- statistical analysis: programs that take the output of the reformatting step and perform statistical analysis on one or more runs, including the creation of plots to show the results of such analysis.
Constraints on subsystems¶
- The data collection subsystem is the only one which should have software that depends on the platform on which the profiling is done, or the version of the compiler used to produce the code, etc. Ideally, the output of the data collection step should be portable to any platform that has the required support tools (R, Ruby, SQLite3) for analysis.
- The call graphing subsystem depends on both Ruby and GraphViz. We will support both Ruby 1.8 (for which the user will have to install the
onigurumagem, and thus also the C library from which it is built) and Ruby 1.9. We are not aware of, and would like to avoid, any strong dependence on GraphViz version.
- The reformatting subsystem will depend on SQLite3, and either Ruby or R, or both. The Ruby dependence is likely to be that of the call graphing system plus a dependence on the
- The statistical analysis subsystem will depend on SQLite3 and R, as well as a possibly large number of R packages, all available from CRAN. We should avoid packages that are available only on a subset of R platforms. We do not believe this to be a strong restriction, because most R packages are available on all supported platforms.
|data collection||32- and 64-bit support||support of 32-bit builds on 64-bit platforms|