Publisher
The University of Arizona.Rights
Copyright © is held by the author. Digital access to this material is made possible by the University Libraries, University of Arizona. Further transmission, reproduction or presentation (such as public display or performance) of protected items is prohibited except with permission of the author.Abstract
A program execution trace is essentially a collection of information on what happened while a given program was running, such as the instructions executed and the values of the registers at the point those instructions were executed. Generating a trace for a program can be immensely useful in debugging, analyzing, and optimizing that program. However, the traces of complex programs can be enormous in size, thereby greatly increasing the cost of collecting, storing, and using them. By implementing data compression into a trace generation program, as well as data decompression into the API used to read the traces, we can drastically reduce the sizes of these traces. Hypothetically, the decreased file I/O cost will also more than compensate for the increased overhead, resulting in more efficient trace reading and writing. After testing a trace writer and reader with and without data compression, we find that there are significant improvements in the space requirements of the trace files, as well as evident improvements in the efficiency of the trace writer and reader. This supports the above hypothesis that data compression can improve performance via reduced file I/O, and has the potential to aid in future pursuits of program analysis and optimization.Type
Electronic thesistext
Degree Name
B.S.Degree Level
bachelorsDegree Program
Computer ScienceHonors College