Rollup merge of #97384 - nnethercote:fix-metadata-stats, r=bjorn3
Fix metadata stats.
This commit:
- Counts some things that weren't being counted previously, and adds
an assertion that ensure everything is counted.
- Reorders things so the `eprintln`s order matches the code order.
- Adds percentages, and makes clear that the zero bytes count is orthogonal to
the other measurements.
Example of the new output:
```
55463779 metadata bytes, of which
18054531 bytes (32.6%) are zero
preamble: 30 bytes ( 0.0%)
dep: 0 bytes ( 0.0%)
lib feature: 17458 bytes ( 0.0%)
lang item: 337 bytes ( 0.0%)
diagnostic item: 1788 bytes ( 0.0%)
native lib: 0 bytes ( 0.0%)
foreign modules: 5113 bytes ( 0.0%)
def-path table: 720180 bytes ( 1.3%)
traits: 359 bytes ( 0.0%)
impls: 64624 bytes ( 0.1%)
incoherent_impls: 130 bytes ( 0.0%)
mir:
16137354 bytes (29.1%)
item:
23773099 bytes (42.9%)
interpret_alloc_index: 599 bytes ( 0.0%)
proc-macro-data: 0 bytes ( 0.0%)
tables:
10081135 bytes (18.2%)
debugger visualizers: 0 bytes ( 0.0%)
exported symbols: 5666 bytes ( 0.0%)
hygiene:
1539390 bytes ( 2.8%)
def-path hashes:
2752564 bytes ( 5.0%)
source_map: 363540 bytes ( 0.7%)
final: 413 bytes ( 0.0%)
```
r? `@bjorn3`