RFR: 7879: Automated Analysis taking very long time to produce results for Class Leak Rule and showing wrong results. [v4]

Brice Dutheil bdutheil at openjdk.org
Fri Oct 7 07:59:31 UTC 2022


On Wed, 28 Sep 2022 21:46:39 GMT, Henrik Dafgård <hdafgard at openjdk.org> wrote:

>> Suchita Chaturvedi has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Adding higher timeout as default value
>
> core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/openjdk/jmc/flightrecorder/rules/jdk/util/DefaultIItemResultSet.java line 108:
> 
>> 106: 			Set<?> aggregate = input.getAggregate((IAggregator<Set<?>, ?>) aggregator);
>> 107: 			if (aggregate != null) {
>> 108: 				ExecutorService exec = Executors.newWorkStealingPool();
> 
> We might want to set a target level parallelism here? Or have an executor service initialized on class load instead of at each invocation of the method? We might also not want a work stealing pool here then.

I just had the same realization today. And somewhat stumbled on your comment.

I'm not sure if the rules using this `DefaultIITemResultSet`, are used in backend servers at this time, but if they are the creation of an executor here (each time this rule is run) is likely inappropriate. 

It might be worth to investigate how to make this work by passing an executor instance to `DefaultIITemResultSet`, and work the timeout with futures ?

-------------

PR: https://git.openjdk.org/jmc/pull/419


More information about the jmc-dev mailing list