https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95348
--- Comment #23 from Martin Liška <marxin at gcc dot gnu.org> --- Created attachment 48660 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48660&action=edit work-in-progress patch There's patch that does not stream all zero counters for a function. The patch only supports streaming and gcov-dump: $ gcov-dump -l a-foo.gcda a-foo.gcda:data:magic `gcda':version `B10e' a-foo.gcda:stamp 1948224357 a-foo.gcda: a1000000: 2:OBJECT_SUMMARY runs=1, sum_max=1 a-foo.gcda: 01000000: 3:FUNCTION ident=108032747, lineno_checksum=0x2408bf36, cfg_checksum=0x7cb34af9 a-foo.gcda: 01a10000: 4:COUNTERS arcs 2 counts a-foo.gcda: 0: 1 1 a-foo.gcda: 01af0000: 2:COUNTERS time_profiler 1 counts a-foo.gcda: 0: 1 a-foo.gcda: 01000000: 3:FUNCTION ident=932535731, lineno_checksum=0x74cbb94c, cfg_checksum=0xeb219516 a-foo.gcda: 01a10000: 4:COUNTERS arcs 2 counts (all zero) a-foo.gcda: 0: 0 0 a-foo.gcda: 01af0000: 2:COUNTERS time_profiler 1 counts (all zero) a-foo.gcda: 0: 0 Can you please test the patch and measure how much does it help for your test-case? Note that the FUNCTION section will be streamed (it contains 3 64-bit integers for each fn: ident=932535731, lineno_checksum=0x74cbb94c, cfg_checksum=0xeb219516).