| SPREADSHEET.PY(1) | LCOV | SPREADSHEET.PY(1) |
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 <<henry.cox@mediatek.com>>
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
| 2026-07-07 | 2.5 |