Performance regression with IntStream.parallel.sum?

Sergey Kuksenko sergey.kuksenko at oracle.com
Mon Oct 28 07:44:15 PDT 2013


On 10/28/2013 06:22 PM, Paul Sandoz wrote:
>> You may find my sources and jar files here:
>> http://cr.openjdk.java.net/~skuksenko/intstream/tiered/
> Thanks. The src directory is empty.
Fixed.

> Here are the results for my test with (adjusting based on your advice
> off list):
> 
>         Options opts = new OptionsBuilder()
>                 .include(".*StreamSumTest.*")
>                 .jvmArgs("-Dbenchmark.n=" + n)
>                 .mode(Mode.AverageTime)
>                 .timeUnit(TimeUnit.NANOSECONDS)
>                 .warmupIterations(10)
>                 .warmupTime(TimeValue.milliseconds(1000))
>                 .measurementIterations(10)
>                 .measurementTime(TimeValue.milliseconds(1000))
>                 .forks(4)
>                 .build();
> 
> 
> -XX:-TieredCompilation, N = 100_000
> Benchmark                         Mode Thr    Cnt  Sec         Mean  
> Mean error    Units
> l.StreamSumTest.testSeq           avgt   1     40    1    43509.309    
>  114.487  nsec/op
> l.StreamSumTest.testStreamPar     avgt   1     40    1   108882.854  
>  29918.402  nsec/op
> l.StreamSumTest.testStreamSeq     avgt   1     40    1   499711.104    
> 1382.872  nsec/op
> 
> 
> -XX:-TieredCompilation, N = 1_000_000
> Benchmark                         Mode Thr    Cnt  Sec         Mean  
> Mean error    Units
> l.StreamSumTest.testSeq           avgt   1     40    1   443011.329    
>  902.065  nsec/op
> l.StreamSumTest.testStreamPar     avgt   1     40    1  1565053.123  
>  17028.800  nsec/op
> l.StreamSumTest.testStreamSeq     avgt   1     40    1   467933.044    
> 1074.794  nsec/op
> 
> 
> -XX:+TieredCompilation, N = 100_000
> Benchmark                         Mode Thr    Cnt  Sec         Mean  
> Mean error    Units
> l.StreamSumTest.testSeq           avgt   1     40    1    43533.608    
>   82.619  nsec/op
> l.StreamSumTest.testStreamPar     avgt   1     40    1   165477.693    
> 7557.480  nsec/op
> l.StreamSumTest.testStreamSeq     avgt   1     40    1   498996.086    
> 1013.645  nsec/op
> 
> -XX:+TieredCompilation, N = 1_000_000
> Benchmark                         Mode Thr    Cnt  Sec         Mean  
> Mean error    Units
> l.StreamSumTest.testSeq           avgt   1     40    1   443919.982    
>  969.729  nsec/op
> l.StreamSumTest.testStreamPar     avgt   1     40    1  1567403.736  
>  18983.551  nsec/op
> l.StreamSumTest.testStreamSeq     avgt   1     40    1  1595995.987  
> 847523.680  nsec/op
> 
> 
> So i am still observing a drop in parallel performance going from N=10^5
> to N=10^6.

Hmmm. Quite strange. Have to evaluate it.

-- 
Best regards,
Sergey Kuksenko



More information about the lambda-dev mailing list