fastdebug vs optimized?
    coleen.phillimore at oracle.com 
    coleen.phillimore at oracle.com
       
    Wed Jan 31 14:22:47 UTC 2018
    
    
  
The idea of optimized was to have the performance of product but the 
printing and diagnostic options of debug.  We used to use it for 
debugging when we had a lot of race conditions in the vm (a long time 
ago now there are none J)   We were sensitive to the size of the 
libjvm.so but since then and since logging, many of the printing 
functions have been exposed and diagnostic() flags were introduced.
https://bugs.openjdk.java.net/browse/JDK-8183287
It's time to remove it and clean up the assert vs. debug macros, but 
currently unassigned.
Thanks,
Coleen
On 1/31/18 8:52 AM, Thomas Stüfe wrote:
> Hi all,
>
> Sorry for asking the same question again, but I still struggle to
> understand the difference between fastdebug and optimized builds. Not the
> technical details, that is clear (I hope):
>
> optimized: optimized build with !ASSERT !PRODUCT
> fastdebug: optimized build with ASSERT !PRODUCT
>
> but what the point is for having two builds with such similarities. What is
> the optimized build used for?
>
> When should I guard verification code with ASSERT, when with !PRODUCT? As
> for the latter, it feels weird to use guarantee and then having to guard it
> explicitly with !PRODUCT, but that is what I would have to do to get
> assertions in optimized build while still suppressing them in release
> builds, yes?
>
> I always assumed that the optimized build is supposed to be faster than
> fastdebug, so, expensive verifications should be better left to ASSERT? But
> then, I see quite some coding contradicting this expectation. The coding
> itself is no real guideline either, I see both ASSERT and !PRODUCT used
> without recognizing a clear pattern.
>
> So, still confused. Can someone enlighten me please :)
>
> Thanks & Regards, Thomas
    
    
More information about the hotspot-dev
mailing list