[foreign-memaccess+abi] RFR: Add benchmarks to MemorySegmentVsBits [v2]
Gavin Ray
duke at openjdk.org
Thu Jan 5 23:00:16 UTC 2023
On Wed, 4 Jan 2023 08:00:15 GMT, Per Minborg <pminborg at openjdk.org> wrote:
>> This PR proposes the addition of some benchmarks, for example using a LonBuffer and a VarHandle.
>
> Per Minborg has updated the pull request incrementally with one additional commit since the last revision:
>
> Change to big endian for some variants
If anyone is interested, here are the results I got. I also added the bulk ByteBuffer method, as below:
@Benchmark
public void byteBufferBulk() {
longBuffer.put(0, longs, 0, size);
}
I'm running Fedora 38 Rawhide on WSL2, with 6.0.1 kernel and the below processor:
```sh-session
[user at MSI ~]$ uname -a
Linux MSI 6.0.1-locietta-WSL2-xanmod1 #1 SMP Wed Oct 12 22:14:49 UTC 2022 x86_64 GNU/Linux
[user at MSI ~]$ sudo lshw -short
H/W path Device Class Description
============================================
/0/1 memory 15GiB System memory
/0/2 processor 11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz
Results are:
MemorySegmentVsBits.bitsEquivalent 1 avgt 30 4.091 ± 0.066 ns/op
MemorySegmentVsBits.bitsEquivalent 2 avgt 30 5.851 ± 0.086 ns/op
MemorySegmentVsBits.bitsEquivalent 16 avgt 30 31.527 ± 0.583 ns/op
MemorySegmentVsBits.bitsEquivalent 64 avgt 30 127.531 ± 2.979 ns/op
MemorySegmentVsBits.bitsEquivalent 256 avgt 30 484.423 ± 9.550 ns/op
MemorySegmentVsBits.bitsEquivalent 512 avgt 30 1554.069 ± 20.114 ns/op
MemorySegmentVsBits.byteBuffer 1 avgt 30 3.717 ± 0.070 ns/op
MemorySegmentVsBits.byteBuffer 2 avgt 30 4.775 ± 0.100 ns/op
MemorySegmentVsBits.byteBuffer 16 avgt 30 10.616 ± 0.121 ns/op
MemorySegmentVsBits.byteBuffer 64 avgt 30 24.960 ± 0.393 ns/op
MemorySegmentVsBits.byteBuffer 256 avgt 30 112.617 ± 2.424 ns/op
MemorySegmentVsBits.byteBuffer 512 avgt 30 222.570 ± 3.518 ns/op
MemorySegmentVsBits.byteBufferBulk 1 avgt 30 20.786 ± 1.493 ns/op
MemorySegmentVsBits.byteBufferBulk 2 avgt 30 19.371 ± 0.426 ns/op
MemorySegmentVsBits.byteBufferBulk 16 avgt 30 23.720 ± 1.228 ns/op
MemorySegmentVsBits.byteBufferBulk 64 avgt 30 45.268 ± 0.895 ns/op
MemorySegmentVsBits.byteBufferBulk 256 avgt 30 115.257 ± 1.508 ns/op
MemorySegmentVsBits.byteBufferBulk 512 avgt 30 271.710 ± 4.398 ns/op
MemorySegmentVsBits.byteVarHandle 1 avgt 30 2.089 ± 0.033 ns/op
MemorySegmentVsBits.byteVarHandle 2 avgt 30 1.848 ± 0.032 ns/op
MemorySegmentVsBits.byteVarHandle 16 avgt 30 4.296 ± 0.136 ns/op
MemorySegmentVsBits.byteVarHandle 64 avgt 30 7.831 ± 0.373 ns/op
MemorySegmentVsBits.byteVarHandle 256 avgt 30 12.824 ± 0.145 ns/op
MemorySegmentVsBits.byteVarHandle 512 avgt 30 27.028 ± 1.252 ns/op
MemorySegmentVsBits.longBuffer 1 avgt 30 2.491 ± 0.028 ns/op
MemorySegmentVsBits.longBuffer 2 avgt 30 2.526 ± 0.040 ns/op
MemorySegmentVsBits.longBuffer 16 avgt 30 6.653 ± 0.132 ns/op
MemorySegmentVsBits.longBuffer 64 avgt 30 17.858 ± 0.195 ns/op
MemorySegmentVsBits.longBuffer 256 avgt 30 62.664 ± 1.664 ns/op
MemorySegmentVsBits.longBuffer 512 avgt 30 123.508 ± 2.895 ns/op
MemorySegmentVsBits.panamaHeap 1 avgt 30 4.672 ± 0.163 ns/op
MemorySegmentVsBits.panamaHeap 2 avgt 30 5.390 ± 0.099 ns/op
MemorySegmentVsBits.panamaHeap 16 avgt 30 8.990 ± 0.220 ns/op
MemorySegmentVsBits.panamaHeap 64 avgt 30 18.137 ± 1.122 ns/op
MemorySegmentVsBits.panamaHeap 256 avgt 30 62.260 ± 0.727 ns/op
MemorySegmentVsBits.panamaHeap 512 avgt 30 123.472 ± 1.329 ns/op
MemorySegmentVsBits.panamaHeapBulk 1 avgt 30 5.413 ± 0.092 ns/op
MemorySegmentVsBits.panamaHeapBulk 2 avgt 30 4.274 ± 0.058 ns/op
MemorySegmentVsBits.panamaHeapBulk 16 avgt 30 5.123 ± 0.136 ns/op
MemorySegmentVsBits.panamaHeapBulk 64 avgt 30 9.037 ± 0.358 ns/op
MemorySegmentVsBits.panamaHeapBulk 256 avgt 30 22.320 ± 0.299 ns/op
MemorySegmentVsBits.panamaHeapBulk 512 avgt 30 35.525 ± 0.626 ns/op
MemorySegmentVsBits.panamaNative 1 avgt 30 4.564 ± 0.124 ns/op
MemorySegmentVsBits.panamaNative 2 avgt 30 5.540 ± 0.112 ns/op
MemorySegmentVsBits.panamaNative 16 avgt 30 8.913 ± 0.133 ns/op
MemorySegmentVsBits.panamaNative 64 avgt 30 18.190 ± 0.335 ns/op
MemorySegmentVsBits.panamaNative 256 avgt 30 60.941 ± 0.893 ns/op
MemorySegmentVsBits.panamaNative 512 avgt 30 109.495 ± 1.711 ns/op
MemorySegmentVsBits.panamaNativeBulk 1 avgt 30 4.435 ± 0.114 ns/op
MemorySegmentVsBits.panamaNativeBulk 2 avgt 30 4.367 ± 0.063 ns/op
MemorySegmentVsBits.panamaNativeBulk 16 avgt 30 5.293 ± 0.084 ns/op
MemorySegmentVsBits.panamaNativeBulk 64 avgt 30 8.886 ± 0.362 ns/op
MemorySegmentVsBits.panamaNativeBulk 256 avgt 30 22.023 ± 0.666 ns/op
MemorySegmentVsBits.panamaNativeBulk 512 avgt 30 27.262 ± 1.223 ns/op
MemorySegmentVsBits.panamaNativeUnaligned 1 avgt 30 4.388 ± 0.065 ns/op
MemorySegmentVsBits.panamaNativeUnaligned 2 avgt 30 5.471 ± 0.098 ns/op
MemorySegmentVsBits.panamaNativeUnaligned 16 avgt 30 9.021 ± 0.148 ns/op
MemorySegmentVsBits.panamaNativeUnaligned 64 avgt 30 18.251 ± 0.471 ns/op
MemorySegmentVsBits.panamaNativeUnaligned 256 avgt 30 62.630 ± 1.119 ns/op
MemorySegmentVsBits.panamaNativeUnaligned 512 avgt 30 111.240 ± 1.386 ns/op
MemorySegmentVsBits.panamaNativeUnalignedBulk 1 avgt 30 4.434 ± 0.074 ns/op
MemorySegmentVsBits.panamaNativeUnalignedBulk 2 avgt 30 4.463 ± 0.089 ns/op
MemorySegmentVsBits.panamaNativeUnalignedBulk 16 avgt 30 5.200 ± 0.089 ns/op
MemorySegmentVsBits.panamaNativeUnalignedBulk 64 avgt 30 8.568 ± 0.371 ns/op
MemorySegmentVsBits.panamaNativeUnalignedBulk 256 avgt 30 22.682 ± 3.399 ns/op
MemorySegmentVsBits.panamaNativeUnalignedBulk 512 avgt 30 27.234 ± 0.458 ns/op
MemorySegmentVsBits.panamaNativeUnalignedBulk 1 avgt 30 4.415 ± 0.096 ns/op
MemorySegmentVsBits.panamaNativeUnalignedBulk 2 avgt 30 4.377 ± 0.056 ns/op
MemorySegmentVsBits.panamaNativeUnalignedBulk 16 avgt 30 5.044 ± 0.066 ns/op
MemorySegmentVsBits.panamaNativeUnalignedBulk 64 avgt 30 9.919 ± 0.894 ns/op
MemorySegmentVsBits.panamaNativeUnalignedBulk 256 avgt 30 21.985 ± 0.722 ns/op
MemorySegmentVsBits.panamaNativeUnalignedBulk 512 avgt 30 25.142 ± 1.577 ns/op
-------------
PR: https://git.openjdk.org/panama-foreign/pull/762
More information about the panama-dev
mailing list