fastdebug vs jvmg
Dmitry Samersoff
dmitry.samersoff at oracle.com
Wed Dec 5 23:59:33 PST 2012
David,
The question is whether we need fastdebug as a separate item, or
something like --enable-asserts --enable-non-product-flags is enough.
Most of JVM bugs I worked with couldn't be reproduced with debug VM so I
almost always end up to instrumented product build.
-Dmitry
On 2012-12-06 08:57, David Holmes wrote:
> First note that Jesper's email is from Oct 31 and only just turned up!
> Either that or he has a clock issue on his system :)
>
> On 6/12/2012 8:25 AM, Kelly O'Hair wrote:
>> On Oct 31, 2012, at 5:26 AM, Jesper Wilhelmsson wrote:
>>> Then I reconfigured with --enable-debug.
>>>
>>> --enable-debug currently configures hotspot to build with the build
>>> target fastdebug. fastdebug isn't really fast since asserts are
>>> turned on, and it can't be used for debugging since the code is
>>> optimized, so the name is a bit misleading. Personally I always use
>>> jvmg when debugging and testing.
>>
>> But the debug build has asserts on too, doesn't it? It should.
>>
>>>
>>> I asked around the Stockholm office and it seems as most people here
>>> would prefer jvmg. It seems as jvmg is very slow on Mac so those who
>>> work on Mac only uses jvmg when debugging for real, not for regular
>>> testing, but otherwise fastdebug is rarely used here.
>>
>> A long time ago, in a land far far away, fastdebug was pretty good on
>> Solaris, using dbx, worked really well, not perfect but pretty good.
>> Since then, Linux was added, and gdb is needed, and Mac too, so we
>> have many native code debuggers to deal with now.
>> Also since then, machines have gotten faster, and disks are fatter and
>> faster, and maybe fastdebug has lost it's benefit.
>> Testing the debug build is pretty impossible, or was, it just was way
>> too slow, maybe 100x slower than a product build.
>> But fastdebug was possible, maybe 10x slower than a product build.
>> So I have always assumed that fastdebug was faster than a debug build.
>> But who knows what the performance is now. I think I was always
>> looking at an entire JDK built with product vs. debug vs. fastdebug
>> not just hotspot, although hotspot was usually the piece that cause
>> performance issues.
>
> I admit we probably haven't run a comparison against fastdebug and jvmg
> recently (especially as jvmg was dropped for a while and only came back
> when it was thought we might extend hotspot-express to JDK 5!) but I
> think the hotspot team will be shocked to discover that fastdebug is
> slower than jvmg. fastdebug is supposed to be faster than debug because
> it still uses the OPT_CFLAGS, not DEBUG_CFLAGS, while also allowing a
> certain level of debugging (and having asserts enabled as does jvmg).
>
> David
> -----
>
>> If all this has changed, then we should re-consider what we build and
>> test.
>>
>> I think it was always agreed that the asserts were invaluable, so we
>> need to keep that on in some build.
>>
>> -kto
>>
>>>
>>> Cheers,
>>> /Jesper
>>>
>>
--
Dmitry Samersoff
Oracle Java development team, Saint Petersburg, Russia
* Give Rabbit time, and he'll always get the answer
More information about the build-infra-dev
mailing list