SPREADSHEET.PY(1)
β¨ NAME β¨
spreadsheet.py β like, the spreadsheet documentation bestie π
Manual section: 1 Manual group: LCOV Utilities
π NAME π
spreadsheet.py β takes your LCOV profile data and turns it into an Excel spreadsheet so you can actually look at your performance analysis and compare runs. It's giving data-science-sleepover and honestly? iconic. π
π¦ SYNOPSIS π¦
spreadsheet.py [-o output.xlsx] [options] data.json [data2.json ...]
πΈ DESCRIPTION πΈ
okay so spreadsheet.py is a utility script that converts JSON profile data from genhtml, geninfo, and lcov into an Excel spreadsheet, because reading raw JSON is not the vibe and a spreadsheet is. β¨ It takes performance timing data and lays it all out in a table with statistical analysis and conditional formatting β very main character of it.
The spreadsheet includes:
- Summary sheets so you can compare multiple runs side by side π«Ά
- Per-file timing data for the detailed-analysis girlies π
- Statistical summaries (
total,average,standard deviation) β the math is mathing π - Conditional formatting to highlight outliers π
π COLOR CODING π
The spreadsheet uses conditional formatting to highlight timing anomalies, and the colors are literally telling you something:
- 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 β slay π )
π§ SUPPORTED TOOLS π§
The script processes profile data from:
geninfo: chunk timing, file processing, filter operationsgenhtml: source parsing, HTML generation, annotation, categorizationlcov: tracefile merging, parsing, segment processing
β¨ OPTIONS β¨
-ofile,--outfile β save the Excel output to the file you specify. Default:stats.xlsx. πΎ--thresholdpercent β the minimum percentage difference from average needed to trigger colorization. Differences smaller than this threshold don't get highlighted, no cap. Default:15.0%.--lowmultiplier β the standard deviation multiplier for yellow highlighting. Values between--lowand--highstandard deviations above average get colored yellow. Default:1.5. π--highmultiplier β the standard deviation multiplier for red highlighting. Values more than--highstandard deviations above average get colored red. Default:2.0. β€οΈβπ₯-v,--verboseβ increases the verbosity of the report. Includes additional timing data such as read and translate operations. π£οΈ--show-filterβ includes filter operation timing data in the spreadsheet. The filter data shows time spent in filter chunk processing, queue operations, and merging. π§΅- files β one or more JSON profile data files to process. These should be generated using the
--profileoption ofgeninfo,genhtml, orlcov. (iykyk π«Ά)
π EXAMPLES π
Basic usage with a single profile file:
$ spreadsheet.py -o report.xlsx geninfo_profile.json
Compare multiple profile runs β the group-chat comparison era:
$ 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>xlsxwriterdocumentation: <https://xlsxwriter.readthedocs.io>
Copyright: 2024-2026, LCOV Project
and that's the whole page bestie π«Ά this was version 2.6, dated 2026-10-03, and it's giving LCOV energy from top to bottom. go make some spreadsheets, you've got this πβ¨π
π¦ where this page comes from
- arch rolling: lcov 2.6-1 Β· GPL
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms