The Structured Trace File Format (STF) is a format that stores data in several physical files by default. This chapter describes the structure of this format and provides the technical background to configure and work with the STF format. It is safe to skip over this chapter because all configuration options that control writing of STF have reasonable default values.
The development of STF was motivated by the observation that the conventional approach of handling trace data in a single trace file is not suitable for large applications or systems, where the trace file can quickly grow into the tens of gigabytes range. On the display side, such huge amounts of data cannot be squeezed into one display at once. There should be mechanisms to enable one to start at a coarser level and then dive into details. Additionally, the ability to request and inspect only parts of the data becomes essential with the amount of trace data growing.
These requirements necessitate a more powerful data organization than the previous Intel® Trace Analyzer tracefile format can provide. In response to this, the STF has been developed. The aim of the STF is to provide a file format which:
Can arbitrarily be partitioned into several files, each one containing a specific subset of the data
Allows fast random access and easy extraction of data
Is extensible, portable, and upward compatible
Is clearly defined and structured
Can efficiently exploit parallelism for reading and writing
Is as compact as possible
The traditional tracefile format is only suitable for small applications, and cannot efficiently be written in parallel. Also, it was designed for reading the entire file at once, rather than for extracting arbitrary data. The structured tracefile implements these new requirements, with the ability to store large amounts of data in a more compact form.