boxing + unboxing a VT is not a no-op ?
Tobias Hartmann
tobias.hartmann at oracle.com
Wed Jul 18 11:28:48 UTC 2018
Thanks, I've filed a bug [1] and have a fix ready.
Here are the results with the patched JVM:
Benchmark Mode Cnt Score Error Units
ReifiedListBenchMark.arraylist_integer_get avgt 9 0.065 ± 0.010 ms/op
ReifiedListBenchMark.reifiedlist_intbox_get avgt 9 593.495 ± 106.121 ms/op
ReifiedListBenchMark.valuelist_intbox_get avgt 9 0.033 ± 0.007 ms/op
ReifiedListBenchMark.valuelist_intbox_inlined_reduce avgt 9 0.030 ± 0.002 ms/op
ReifiedListBenchMark.valuelist_intbox_innervalue_inlined_reduce avgt 9 0.029 ± 0.001 ms/op
ReifiedListBenchMark.valuelist_intbox_reduce avgt 9 0.033 ± 0.009 ms/op
Best regards,
Tobias
[1] https://bugs.openjdk.java.net/browse/JDK-8207773
On 17.07.2018 17:11, forax at univ-mlv.fr wrote:
> The jar is test-fr.umlv.valuetype-1.0.jar, it has dependencies to JUnit 5 and JMH
>
> Every jars are here:
> http://www-igm.univ-mlv.fr/~forax/tmp/valhalla/
>
> you can run it like this:
> /usr/jdk/jdk-11-lworld/bin/java -XX:+EnableValhalla --module-path path_to_the_folder_that_contains_the_jars -m fr.umlv.valuetype/fr.umlv.valuetype.perf.ReifiedListBenchMark
>
> regards,
> Rémi
>
> ----- Mail original -----
>> De: "Tobias Hartmann" <tobias.hartmann at oracle.com>
>> À: "Remi Forax" <forax at univ-mlv.fr>
>> Cc: "valhalla-dev" <valhalla-dev at openjdk.java.net>
>> Envoyé: Mardi 17 Juillet 2018 16:58:41
>> Objet: Re: boxing + unboxing a VT is not a no-op ?
>
>> Hi Remi,
>>
>> okay, thanks for the details. Could you maybe upload the jmh benchmark .jar? I
>> have problems to
>> build the entire benchmark suite from scratch and I cannot reproduce the
>> performance difference when
>> extracting the benchmark methods and running them manually.
>>
>> Thanks,
>> Tobias
>>
>> On 17.07.2018 16:14, forax at univ-mlv.fr wrote:
>>> when i run the benchmark,
>>>
>>> Benchmark Mode Cnt
>>> Score Error Units
>>> ReifiedListBenchMark.arraylist_integer_get avgt 9
>>> 0.055 ± 0.001 ms/op
>>> ReifiedListBenchMark.reifiedlist_intbox_get avgt 9
>>> 506.190 ± 7.978 ms/op
>>> ReifiedListBenchMark.valuelist_intbox_get avgt 9
>>> 0.027 ± 0.001 ms/op
>>> ReifiedListBenchMark.valuelist_intbox_inlined_reduce avgt 9
>>> 0.027 ± 0.001 ms/op
>>> ReifiedListBenchMark.valuelist_intbox_innervalue_inlined_reduce avgt 9
>>> 0.304 ± 0.004 ms/op
>>>
>>> if you compare valuelist_intbox_get and valuelist_intbox_inlined_reduce you see
>>> that a value type that contains an int as as fast as an int, that's great but
>>> i'm more interested by the last two benchmarks.
>>>
>>> valuelist_intbox_innervalue_inlined_reduce should be as fast as
>>> valuelist_intbox_inlined_reduce, because the only difference is value type to
>>> object boxing.
More information about the valhalla-dev
mailing list