RFR: 8320759: Creation of random BigIntegers can be made faster [v2]
fabioromano1
duke at openjdk.org
Tue Nov 28 22:13:08 UTC 2023
On Tue, 28 Nov 2023 19:31:14 GMT, Brian Burkhalter <bpb at openjdk.org> wrote:
>> Do you have any actual benchmark measurements that you could share?
>
>> @bplb I have not yet made benchmark measurements, but I can produce them.
>
> @fabioromano1 I think it would be good to measure and report the benefit, if you don't mind.
@bplb I have done some tests, these are the results:
Older implementation:
JVM: Java HotSpot(TM) 64-Bit Server VM 21.0.1+12-LTS-29
OS: Linux 5.5.0-kali2-amd64
Test 1:
numBits=1, execution time=PT0.000699157S
numBits=2, execution time=PT0.000023952S
numBits=4, execution time=PT0.000009588S
numBits=8, execution time=PT0.000008189S
numBits=16, execution time=PT0.000010701S
numBits=32, execution time=PT0.000011743S
numBits=64, execution time=PT0.000018907S
numBits=128, execution time=PT0.000021929S
numBits=256, execution time=PT0.000045141S
numBits=512, execution time=PT0.000069789S
numBits=1024, execution time=PT0.000438628S
numBits=2048, execution time=PT0.000619775S
numBits=4096, execution time=PT0.007964754S
numBits=8192, execution time=PT0.00092404S
numBits=16384, execution time=PT0.010798554S
numBits=32768, execution time=PT0.009661368S
numBits=65536, execution time=PT0.015757106S
numBits=131072, execution time=PT0.043498597S
numBits=262144, execution time=PT0.049676326S
numBits=524288, execution time=PT0.01529584S
numBits=1048576, execution time=PT0.002818203S
numBits=2097152, execution time=PT0.013192936S
numBits=4194304, execution time=PT0.026337619S
numBits=8388608, execution time=PT0.059158393S
numBits=16777216, execution time=PT0.093313405S
numBits=33554432, execution time=PT0.123457485S
numBits=67108864, execution time=PT0.089361357S
numBits=134217728, execution time=PT0.219089575S
numBits=268435456, execution time=PT0.683150564S
numBits=536870912, execution time=PT1.580409429S
numBits=1073741824, execution time=PT2.517073472S
Test 2:
numBits=1, execution time=PT0.000927963S
numBits=2, execution time=PT0.000081967S
numBits=4, execution time=PT0.000020935S
numBits=8, execution time=PT0.000016594S
numBits=16, execution time=PT0.000018655S
numBits=32, execution time=PT0.00001965S
numBits=64, execution time=PT0.000015891S
numBits=128, execution time=PT0.000035207S
numBits=256, execution time=PT0.000047545S
numBits=512, execution time=PT0.00010469S
numBits=1024, execution time=PT0.000148356S
numBits=2048, execution time=PT0.000400422S
numBits=4096, execution time=PT0.000678288S
numBits=8192, execution time=PT0.001286059S
numBits=16384, execution time=PT0.0033047S
numBits=32768, execution time=PT0.003497816S
numBits=65536, execution time=PT0.008359785S
numBits=131072, execution time=PT0.02874995S
numBits=262144, execution time=PT0.033667068S
numBits=524288, execution time=PT0.001652314S
numBits=1048576, execution time=PT0.003623258S
numBits=2097152, execution time=PT0.004878528S
numBits=4194304, execution time=PT0.012982859S
numBits=8388608, execution time=PT0.024819597S
numBits=16777216, execution time=PT0.040988123S
numBits=33554432, execution time=PT0.117394044S
numBits=67108864, execution time=PT0.155300788S
numBits=134217728, execution time=PT0.312046375S
numBits=268435456, execution time=PT0.489544424S
numBits=536870912, execution time=PT0.648922766S
numBits=1073741824, execution time=PT1.694348228S
Newer implementation:
JVM: OpenJDK 64-Bit Server VM 22-internal-adhoc.kali.jdk
OS: Linux 5.5.0-kali2-amd64
Test 1:
numBits=1, execution time=PT0.000931361S
numBits=2, execution time=PT0.000009131S
numBits=4, execution time=PT0.000005598S
numBits=8, execution time=PT0.000005079S
numBits=16, execution time=PT0.000005173S
numBits=32, execution time=PT0.00000528S
numBits=64, execution time=PT0.000007437S
numBits=128, execution time=PT0.000008283S
numBits=256, execution time=PT0.000012538S
numBits=512, execution time=PT0.000020438S
numBits=1024, execution time=PT0.000036785S
numBits=2048, execution time=PT0.000185241S
numBits=4096, execution time=PT0.000197063S
numBits=8192, execution time=PT0.000223476S
numBits=16384, execution time=PT0.000257176S
numBits=32768, execution time=PT0.000243897S
numBits=65536, execution time=PT0.000510034S
numBits=131072, execution time=PT0.00097546S
numBits=262144, execution time=PT0.010734387S
numBits=524288, execution time=PT0.003521437S
numBits=1048576, execution time=PT0.019798445S
numBits=2097152, execution time=PT0.002221943S
numBits=4194304, execution time=PT0.003967343S
numBits=8388608, execution time=PT0.012686879S
numBits=16777216, execution time=PT0.020487223S
numBits=33554432, execution time=PT0.059377121S
numBits=67108864, execution time=PT0.057220115S
numBits=134217728, execution time=PT0.116699493S
numBits=268435456, execution time=PT0.259903987S
numBits=536870912, execution time=PT0.389077171S
numBits=1073741824, execution time=PT0.700334039S
Test 2:
numBits=1, execution time=PT0.000784538S
numBits=2, execution time=PT0.000011703S
numBits=4, execution time=PT0.000008531S
numBits=8, execution time=PT0.000005882S
numBits=16, execution time=PT0.00000598S
numBits=32, execution time=PT0.00000988S
numBits=64, execution time=PT0.000009407S
numBits=128, execution time=PT0.00001319S
numBits=256, execution time=PT0.000013505S
numBits=512, execution time=PT0.000021383S
numBits=1024, execution time=PT0.000058492S
numBits=2048, execution time=PT0.000482897S
numBits=4096, execution time=PT0.001244931S
numBits=8192, execution time=PT0.001768842S
numBits=16384, execution time=PT0.000231889S
numBits=32768, execution time=PT0.001336978S
numBits=65536, execution time=PT0.000591514S
numBits=131072, execution time=PT0.005367744S
numBits=262144, execution time=PT0.002301247S
numBits=524288, execution time=PT0.006544409S
numBits=1048576, execution time=PT0.010711628S
numBits=2097152, execution time=PT0.012067186S
numBits=4194304, execution time=PT0.002592803S
numBits=8388608, execution time=PT0.005091683S
numBits=16777216, execution time=PT0.023796749S
numBits=33554432, execution time=PT0.020254963S
numBits=67108864, execution time=PT0.055511959S
numBits=134217728, execution time=PT0.0909186S
numBits=268435456, execution time=PT0.158207744S
numBits=536870912, execution time=PT0.422297073S
numBits=1073741824, execution time=PT0.615943347S
-------------
PR Comment: https://git.openjdk.org/jdk/pull/16817#issuecomment-1830839416
More information about the core-libs-dev
mailing list