[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-build-dev
Subject:    Re: building libjvm with -Os for space optimization - was : RE: RFR: 8234525: enable link-time secti
From:       Ioi Lam <ioi.lam () oracle ! com>
Date:       2019-11-30 1:13:37
Message-ID: e3b7cedc-7054-627f-9ad2-30335ee85fae () oracle ! com
[Download RAW message or body]



On 11/27/19 10:03 AM, Doerr, Martin wrote:
> Hi Claes,
> 
> that kind of surprises me. I'd expect files which rather benefit from -O3 to be far \
> less than those which benefit from -Os. Most performance critical code lives inside \
> the code cache and is not dependent on C++ compiler optimizations. I'd expect GC \
> code, C2's register allocation and a few runtime files to be the most performance \
> critical C++ code. So the list of files for -Os may become long.

Class loading/verification/resolution are also sensitive to C++ speed.

Thanks
- Ioi

> Yeah, I think we should use native profiling information to find out what's really \
> going on. 
> Your idea to change file by file and check for performance regression makes sense \
> to me, though. 
> Best regards,
> Martin
> 
> 
> > -----Original Message-----
> > From: Claes Redestad <claes.redestad@oracle.com>
> > Sent: Mittwoch, 27. November 2019 18:57
> > To: Baesken, Matthias <matthias.baesken@sap.com>; Doerr, Martin
> > <martin.doerr@sap.com>; Erik Joelsson <erik.joelsson@oracle.com>; 'build-
> > dev@openjdk.java.net' <build-dev@openjdk.java.net>; 'hotspot-
> > dev@openjdk.java.net' <hotspot-dev@openjdk.java.net>
> > Subject: Re: building libjvm with -Os for space optimization - was : RE: RFR:
> > 8234525: enable link-time section-gc for linux s390x to remove unused code
> > 
> > Hi,
> > 
> > we discussed doing the opposite for Mac OS X recently, where builds are
> > currently set to -Os by default. -O3 helped various networking
> > (micro)benchmarks by up to 20%.
> > 
> > Rather than doing -Os by default and then cherry-pick things over to -O3
> > on a case-by-case basis, I'd suggest the opposite: keep -O3 as the
> > default, start evaluating -Os on a case-by-case basis. This allows for
> > an incremental approach where we identify things that are definitely not
> > performance critical, e.g., never shows up in profiles, and switch those
> > compilation units over to -Os. Check for harmful performance impact and
> > expected footprint improvement; rinse; repeat.
> > 
> > $.02
> > 
> > /Claes
> > 
> > 
> > On 2019-11-27 17:36, Baesken, Matthias wrote:
> > > Hello Martin,  I checked  building  libjvm.so  with -Os  (instead of -O3) .
> > > 
> > > I used gcc-7  on linux x86_64 .
> > > The size  of  libjvm.so   dropped   from    24M  (normal night make with -O3)
> > to   18M   ( test make with -Os)   .
> > > (adding the link-time gc might  reduce the size by another ~ 10 % ,  but
> > those 2 builds were without the ltgc )
> > > Cannot say much so far about performance impact .
> > > 
> > > Best regards, Matthias
> > > 
> > > 
> > > 
> > > > Hi Matthias and Erik,
> > > > 
> > > > I also think this is an interesting option.
> > > > 
> > > > I like the idea to generate smaller libraries. In addition to that, I could \
> > > > also imagine building with -Os (size optimized) by default and only select \
> > > > -O3
> > for
> > > > performance critical files (e.g. C2's register allocation, some gc code, \
> > > > ...). 
> > > > If we want to go into such a direction for all linux platforms and want to
> > use
> > > > this s390 only change as some kind of pipe cleaner, I think this change is
> > fine
> > > > and can get pushed.
> > > > Otherwise, I think building s390 differently and not intending to do the
> > same
> > > > for other linux platforms would be not so good.
> > > > 
> > > > We should only make sure the exported symbols are set up properly to
> > avoid
> > > > that this optimization throws out too much.
> > > > 
> > > > My 50 Cents.
> > > > 
> > > > Best regards,
> > > > Martin
> > > > 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic