RFR (S): 8011425: NPE in TestObjectCountAfterGCEvent.java on Linux32
Stefan Karlsson
stefan.karlsson at oracle.com
Tue May 7 12:53:31 UTC 2013
On 05/07/2013 02:12 PM, Coleen Phillimore wrote:
> On 5/7/2013 6:03 AM, Erik Helin wrote:
>> All,
>>
>> based on feedback from Bengt, the boolean condition for a class being
>> externally visible have been slightly reordered.
>>
>> The logical operators in webrev.01 reads more naturally:
>>
>> k->klass_part()->oop_is_instance() ||
>> (k->klass_part()->oop_is_array() && k != systemObjArrayKlassObj())
>
> I believe classes either instances or arrays. What else do you
> find? Klass is just a base class for these two.
No, in JDK7, where we still have the PermGen, k can also describe
klassOops. E.g. instanceKlassKlass responds to oop_is_instanceKlass().
> Both of these oop_is_blah() make virtual calls so you want to avoid
> them.
This is just two virtual calls per Klass, while both the marking code
and the heap inspection code uses virtual calls on every single object
in the heap.
StefanK
>
> Coleen
>
>>
>> compared to webrev.00:
>>
>> (k->klass_part()->oop_is_instance() ||
>> k->klass_part()->oop_is_array()) &&
>> k != Universe::systemObjArrayKlassObj()
>>
>> since the condition k != Universe::systemObjArrayKlassObj() only
>> needs to be checked if k->klass_part()->oop_is_array() is true.
>>
>> New webrev:
>> http://cr.openjdk.java.net/~ehelin/8011425/webrev.01/
>>
>> Thanks,
>> Erik
>>
>> On 05/03/2013 03:51 PM, Erik Helin wrote:
>>> Hi all,
>>>
>>> this change makes sure that the vm/gc/detailed/object_after_gc_event
>>> only is sent for classes that should be visible externally.
>>>
>>> Webrev:
>>> http://cr.openjdk.java.net/~ehelin/8011425/webrev.00/
>>>
>>> Thanks,
>>> Erik
>>
>
More information about the hotspot-gc-dev
mailing list