NAME
spreadsheet.py - spreadsheet documentation
- Manual section
-
1
- Manual group
-
LCOV Utilities
NAME
- spreadsheet.py
-
Convert LCOV profile data to Excel spreadsheet for performance analysis and comparison
SYNOPSIS
spreadsheet.py [-o output.xlsx] [options] data.json [data2.json ...]
DESCRIPTION
spreadsheet.py is a utility script that converts JSON profile data from genhtml, geninfo, and lcov into an Excel spreadsheet for easier analysis. The script processes performance timing data and presents it in a tabular format with statistical analysis and conditional formatting.
The spreadsheet includes:
- •
-
Summary sheets for comparing multiple runs
- •
-
Per-file timing data for detailed analysis
- •
-
Statistical summaries (total, average, standard deviation)
- •
-
Conditional formatting to highlight outliers
COLOR CODING
The spreadsheet uses conditional formatting to highlight timing anomalies:
- •
-
Yellow: Values between 1.5 and 2.0 standard deviations larger than average (and more than 15% above average)
- •
-
Red: Values more than 2.0 standard deviations larger than average (and more than 15% above average)
- •
-
Green: Values more than 2.0 standard deviations smaller than average (significantly better performance)
SUPPORTED TOOLS
The script processes profile data from:
- •
-
geninfo: Chunk timing, file processing, filter operations
- •
-
genhtml: Source parsing, HTML generation, annotation, categorization
- •
-
lcov: Tracefile merging, parsing, segment processing
OPTIONS
- -o file, --out file
-
Save Excel output to specified file. Default: stats.xlsx.
- --threshold percent
-
Minimum percentage difference from average to trigger colorization. Differences smaller than this threshold are not highlighted. Default: 15.0%.
- --low multiplier
-
Standard deviation multiplier for yellow highlighting. Values between --low and --high standard deviations above average are colored yellow. Default: 1.5.
- --high multiplier
-
Standard deviation multiplier for red highlighting. Values more than --high standard deviations above average are colored red. Default: 2.0.
- -v, --verbose
-
Increase verbosity of the report. Includes additional timing data such as read and translate operations.
- --show-filter
-
Include filter operation timing data in the spreadsheet. Filter data shows time spent in filter chunk processing, queue operations, and merging.
- files
-
One or more JSON profile data files to process. Files should be generated using the --profile option of geninfo, genhtml, or lcov.
EXAMPLES
Basic usage with a single profile file:
$ spreadsheet.py -o report.xlsx geninfo_profile.json
Compare multiple profile runs:
$ spreadsheet.py -o comparison.xlsx run1.json run2.json run3.json
Include filter timing data with verbose output:
$ spreadsheet.py --show-filter -v -o detailed.xlsx profile.json
Adjust sensitivity for outlier detection:
$ spreadsheet.py --threshold 10 --low 1.0 --high 1.5 -o sensitive.xlsx data.json
GENERATING PROFILE DATA
To generate profile data for analysis, use the --profile option:
$ geninfo --profile geninfo_profile.json -o coverage.info ./build $ genhtml --profile genhtml_profile.json -o html coverage.info $ lcov --profile lcov_profile.json -a a.info -a b.info -o merged.info
AUTHOR
Henry Cox <<[email protected]>>
SEE ALSO
genhtml(1) <file://../man/genhtml.1.html>, geninfo(1) <file://../man/geninfo.1.html>, lcov(1) <file://../man/lcov.1.html>
- •
-
xlsxwriter documentation: <https://xlsxwriter.readthedocs.io>
Copyright
2024-2026, LCOV Project