Hi Peter,

As always, thanks for doing this! It has been on my todolist for a while but 
never quite bubbling up to the top.

I don’t have time to look att his right now, but I expect to have some free 
time next week, but i have two short comments 

First, I have been thinking about moving MethodArray to its’s own top-level 
class, isn’t it about time?

Second I would expect testing for the missing cases you uncovered (good catch!).

I’ll try to get back to you asap.

cheers
/Joel


On 26 okt 2014, at 23:53, Peter Levart <peter.lev...@gmail.com> wrote:

> 
> On 10/26/2014 09:25 PM, Peter Levart wrote:
>> 19657 classes loaded in 1.987373401 seconds.
>> 494141 methods obtained in 1.02493941 seconds.
>> 
>> vs.
>> 
>> 19657 classes loaded in 2.084409717 seconds.
>> 494124 methods obtained in 0.915928578 seconds.
> 
> Hi,
> 
> As you might have noticed, the number of methods obtained from patched code 
> differed from original code. I have investigated this and found that original 
> code treats abstract class methods the same as abstract interface methods as 
> far as multiple inheritance is concerned (it keeps them together in the 
> returned array). So I fixed this and here's new webrev which behaves the same 
> as original code:
> 
> http://cr.openjdk.java.net/~plevart/jdk9-dev/Class.getMethods/webrev.02/
> 
> Comparing original vs. patched code still shows speed-up:
> 
> Original:
> 
> 19657 classes loaded in 1.980493029 seconds.
> 494141 methods obtained in 0.976318927 seconds.
> 494141 methods obtained in 0.886504437 seconds.
> 494141 methods obtained in 0.911153722 seconds.
> 494141 methods obtained in 0.880550509 seconds.
> 494141 methods obtained in 0.875526704 seconds.
> 494141 methods obtained in 0.877258894 seconds.
> 494141 methods obtained in 0.871794344 seconds.
> 494141 methods obtained in 0.884159644 seconds.
> 494141 methods obtained in 0.892648522 seconds.
> 494141 methods obtained in 0.884581841 seconds.
> 
> Patched:
> 
> 19657 classes loaded in 2.055697675 seconds.
> 494141 methods obtained in 0.853922188 seconds.
> 494141 methods obtained in 0.776203794 seconds.
> 494141 methods obtained in 0.858774803 seconds.
> 494141 methods obtained in 0.778178867 seconds.
> 494141 methods obtained in 0.760043997 seconds.
> 494141 methods obtained in 0.756352444 seconds.
> 494141 methods obtained in 0.740826372 seconds.
> 494141 methods obtained in 0.744264782 seconds.
> 494141 methods obtained in 0.73805894 seconds.
> 494141 methods obtained in 0.746852752 seconds.
> 
> 
> 55 java/lang/reflect jtreg tests still pass. As they did before, which means 
> that we don't have a coverage for such cases. I'll see where I can add such a 
> case (EnumSet for example, which inherits from Set interface and 
> AbstractColection class via two different paths, so Set.size()/iterator() and 
> AbstractCollection.size()/iterator() are both returned from getMethods())...
> 
> 
> Regards, Peter
> 

Reply via email to