On 10/17/19 7:59 PM, Nick Alcock wrote:
> On 17 Oct 2019, Richard Biener verbalised:
> 
>> On Thu, Oct 17, 2019 at 7:36 PM Nick Alcock <nick.alc...@oracle.com> wrote:
>>>
>>> On 11 Oct 2019, Indu Bhagat stated:
>>>> Compile with -g -gdwarf-like-ctf and use dwz -o <binary_dwz> <binary> 
>>>> (using
>>>> dwz compiled from the master branch) on the generated binaries:
>>>>
>>>> (coreutils-0.22)
>>>>      .debug_info(D1) | .debug_abbrev(D2) | .debug_str(D4) | .ctf 
>>>> (uncompressed) | ratio (.ctf/(D1+D2+0.5*D4))
>>>> ls   30616           |    1136           |    21098       | 26240          
>>>>      | 0.62
>>>> pwd  10734           |    788            |    10433       | 13929          
>>>>      | 0.83
>>>> groups 10706         |    811            |    10249       | 13378          
>>>>      | 0.80
>>>>
>>>> (emacs-26.3)
>>>>      .debug_info(D1) | .debug_abbrev(D2) | .debug_str(D4) | .ctf 
>>>> (uncompressed) | ratio (.ctf/(D1+D2+0.5*D4))
>>>> emacs-26.3.1 674657  |    6402           |   273963       |   273910       
>>>>      | 0.33
>>
>> Btw, for a fair comparison you have to remove all DW_TAG_subroutine
>> children as well since CTF doesn't represent scopes or local variables
>> at all (nor types only used by locals). It seems CTF only represents
>> function entry points.
> 
> Good point: I'll have to hack up a DWARF trimmer to do this comparison
> properly, I think. (Though CTF does represent global variables,
> including file-scope statics.)

Wouldn't it be possible to extend the -gdwarf-like-ctf hack to skip
emitting those things?

> 
> In most cases local types etc are a fairly small contributor to the
> total volume -- but macros can contribute a lot in some codebases. (The
> Linux kernel's READ_ONCE macro is one I've personally been bitten by in
> the past, with a new local struct in every use. GCC doesn't deduplicate
> any of those so the resulting bloat from tens of thousands of instances
> of this identical structure is quite incredible...)
> 

Sounds like something that would be beneficial to do with DWARF too.

Thanks,
Pedro Alves

Reply via email to