guardian/notifications-tooling
File Size The distribution of size of files (measured in lines of code). |
File Size Overall
- There are 309 files with 28,862 lines of code.
- 1 very long files (1,452 lines of code)
- 5 long files (3,683 lines of code)
- 23 medium size files (7,212 lines of code)
- 58 small files (7,834 lines of code)
- 222 very small files (8,681 lines of code)
Legend:
1001+
501-1000
201-500
101-200
1-100
explore: grouped by folders | grouped by size | sunburst | 3D view
File Size per Extension
1001+
501-1000
201-500
101-200
1-100
File Size per Logical Decomposition
primary
Longest Files (Top 50)
| File | # lines | # units |
|---|---|---|
| 1452 | 118 | |
| 909 | 88 | |
| 779 | 70 | |
| 730 | 50 | |
| 711 | 31 | |
| 554 | 58 | |
| 499 | 46 | |
| 454 | - | |
| 422 | 5 | |
| 412 | 40 | |
| 409 | - | |
| 360 | 33 | |
| 340 | 4 | |
| 331 | 1 | |
| 317 | 1 | |
| 316 | 35 | |
| 301 | - | |
| 297 | 9 | |
| 291 | 28 | |
| 287 | 12 | |
| 287 | - | |
| 281 | 3 | |
| 277 | 25 | |
| 232 | 11 | |
| 229 | - | |
| 224 | 1 | |
| 222 | 1 | |
| 217 | 1 | |
| 207 | 2 | |
| 199 | 19 | |
| 191 | - | |
| 186 | - | |
| 175 | 2 | |
| 172 | 23 | |
| 170 | - | |
| 169 | - | |
| 169 | - | |
| 169 | 1 | |
| 161 | 4 | |
| 160 | 13 | |
| 159 | 2 | |
| 157 | 4 | |
| 151 | - | |
| 149 | - | |
| 149 | 1 | |
| 149 | 2 | |
| 149 | 1 | |
| 146 | - | |
| 145 | - | |
| 145 | 1 |
Large Files That Change Often (Top 20)
To change a file, an AI coding agent (or a person) has to read it: these files are read the most for the changes in the past year (lines × changes).
| File | # lines | ≈ tokens to read | # changes (1y) | ≈ lines edited per change | lines read per line changed |
|---|---|---|---|---|---|
| 1452 | ~10k–30k | 140 | ~50 | ~30 | |
| 909 | ~5k–15k | 69 | ~70 | ~15 | |
| 779 | ~5k–15k | 72 | ~70 | ~15 | |
| 730 | ~5k–15k | 64 | ~50 | ~15 | |
| 340 | ~2k–5k | 134 | ~30 | ~10 | |
| 554 | ~3k–10k | 80 | ~50 | ~15 | |
| 409 | ~2k–7k | 88 | ~70 | ~5 | |
| 711 | ~3k–10k | 48 | ~70 | ~10 | |
| 331 | ~2k–5k | 100 | ~20 | ~15 | |
| 454 | ~3k–7k | 67 | ~70 | ~7 | |
| 287 | ~2k–5k | 80 | ~30 | ~10 | |
| 499 | ~3k–7k | 42 | ~50 | ~10 | |
| 316 | ~2k–5k | 65 | ~30 | ~10 | |
| 301 | ~2k–5k | 54 | ~30 | ~7 | |
| 422 | ~2k–7k | 34 | ~50 | ~7 | |
| 360 | ~2k–7k | 33 | ~50 | ~7 | |
| 412 | ~2k–7k | 25 | ~150 | ~3 | |
| 291 | ~2k–5k | 33 | ~50 | ~5 | |
| 95 | ~500–1.5k | 101 | ~10 | ~7 | |
| 137 | ~700–2k | 68 | ~20 | ~7 |
Tokens are lines × 7 to 14 (analysis.fileReadsForChanges). Lines edited per change are the file's lines added and deleted divided by its commits over the whole history. Agents read about 2,000 lines at a time: when a 17,000-line file was split into modules, the tokens an agent read for the same change fell by 83% (The Economic Benefit of Refactoring, 2026).
Files With Most Units (Top 50)
| File | # lines | # units |
|---|---|---|
| 1452 | 118 | |
| 909 | 88 | |
| 779 | 70 | |
| 554 | 58 | |
| 730 | 50 | |
| 499 | 46 | |
| 412 | 40 | |
| 316 | 35 | |
| 360 | 33 | |
| 711 | 31 | |
| 291 | 28 | |
| 277 | 25 | |
| 172 | 23 | |
| 199 | 19 | |
| 77 | 14 | |
| 160 | 13 | |
| 287 | 12 | |
| 131 | 12 | |
| 129 | 12 | |
| 69 | 11 | |
| 232 | 11 | |
| 97 | 10 | |
| 297 | 9 | |
| 100 | 9 | |
| 106 | 9 | |
| 97 | 8 | |
| 73 | 7 | |
| 70 | 6 | |
| 62 | 6 | |
| 111 | 6 | |
| 82 | 6 | |
| 58 | 5 | |
| 422 | 5 | |
| 137 | 5 | |
| 31 | 4 | |
| 47 | 4 | |
| 60 | 4 | |
| 143 | 4 | |
| 157 | 4 | |
| 161 | 4 | |
| 340 | 4 | |
| 66 | 3 | |
| 35 | 3 | |
| 22 | 3 | |
| 21 | 3 | |
| 85 | 3 | |
| 281 | 3 | |
| 112 | 2 | |
| 40 | 2 | |
| 15 | 2 |
Files With Long Lines (Top 34)
There are 34 files with lines longer than 120 characters. In total, there are 71 long lines.
| File | # lines | # units | # long lines |
|---|---|---|---|
| 186 | - | 11 | |
| 454 | - | 11 | |
| 69 | - | 7 | |
| 287 | - | 3 | |
| 78 | - | 3 | |
| 28 | - | 2 | |
| 33 | - | 2 | |
| 30 | - | 2 | |
| 499 | 46 | 2 | |
| 730 | 50 | 2 | |
| 909 | 88 | 2 | |
| 711 | 31 | 2 | |
| 331 | 1 | 1 | |
| 1 | - | 1 | |
| 79 | - | 1 | |
| 2 | - | 1 | |
| 779 | 70 | 1 | |
| 47 | 1 | 1 | |
| 60 | - | 1 | |
| 110 | - | 1 | |
| 119 | 2 | 1 | |
| 149 | - | 1 | |
| 25 | - | 1 | |
| 132 | - | 1 | |
| 317 | 1 | 1 | |
| 31 | - | 1 | |
| 97 | 10 | 1 | |
| 48 | 1 | 1 | |
| 412 | 40 | 1 | |
| 554 | 58 | 1 | |
| 149 | 1 | 1 | |
| 47 | 1 | 1 | |
| 1452 | 118 | 1 | |
| 149 | 2 | 1 |
Correlations
File Size vs. Commits (all time): 309 points
|
|
1452.0 | lines of code min: 1.0average: 93.4 25th percentile: 25.0 median: 49.0 75th percentile: 110.5 max: 1452.0 |
|
| 0 | 140.0 | ||
|
commits (all time) min: 2.0 | average: 19.13 | 25th percentile: 6.0 | median: 13.0 | 75th percentile: 24.0 | max: 140.0
|
|||
File Size vs. Contributors (all time): 309 points
|
|
1452.0 | lines of code min: 1.0average: 93.4 25th percentile: 25.0 median: 49.0 75th percentile: 110.5 max: 1452.0 |
|
| 0 | 11.0 | ||
|
contributors (all time) min: 1.0 | average: 5.17 | 25th percentile: 3.0 | median: 5.0 | 75th percentile: 7.0 | max: 11.0
|
|||
File Size vs. Commits (30 days): 271 points
|
|
1452.0 | lines of code min: 1.0average: 102.15 25th percentile: 30.0 median: 58.0 75th percentile: 118.0 max: 1452.0 |
|
| 0 | 133.0 | ||
|
commits (30d) min: 1.0 | average: 14.04 | 25th percentile: 5.0 | median: 10.0 | 75th percentile: 18.0 | max: 133.0
|
|||
File Size vs. Contributors (30 days): 271 points
|
|
1452.0 | lines of code min: 1.0average: 102.15 25th percentile: 30.0 median: 58.0 75th percentile: 118.0 max: 1452.0 |
|
| 0 | 9.0 | ||
|
contributors (30d) min: 1.0 | average: 4.69 | 25th percentile: 3.0 | median: 5.0 | 75th percentile: 7.0 | max: 9.0
|
|||
File Size vs. Commits (90 days): 309 points
|
|
1452.0 | lines of code min: 1.0average: 93.4 25th percentile: 25.0 median: 49.0 75th percentile: 110.5 max: 1452.0 |
|
| 0 | 140.0 | ||
|
commits (90d) min: 2.0 | average: 19.13 | 25th percentile: 6.0 | median: 13.0 | 75th percentile: 24.0 | max: 140.0
|
|||
File Size vs. Contributors (90 days): 309 points
|
|
1452.0 | lines of code min: 1.0average: 93.4 25th percentile: 25.0 median: 49.0 75th percentile: 110.5 max: 1452.0 |
|
| 0 | 11.0 | ||
|
contributors (90d) min: 1.0 | average: 5.17 | 25th percentile: 3.0 | median: 5.0 | 75th percentile: 7.0 | max: 11.0
|
|||
About This Analysis
- File size measurements show the distribution of size of files.
- Files are classified in four categories based on their size (lines of code): 1-100 (very small files), 101-200 (small files), 201-500 (medium size files), 501-1000 (long files), 1001+(very long files).
- It is a good practice to keep files small. Long files may become "bloaters", code that have increased to such gargantuan proportions that they are hard to work with.
Learn more...
- To learn more about bloaters and how to deal with long code structures, Sokrates recommends the following resources:
- Refactoring bloaters, sourcemaking.com
- The Blob Software Development Anti-Pattern, sourcemaking.com