Understanding the performance of my FFI-based API

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Fri Mar 10 18:46:27 UTC 2023


On 10/03/2023 18:05, Maurizio Cimadamore wrote:
>
> I’m not sure how much the update to 20 matters - maybe try to fix all 
> of the other stuff first, and see what happens (inexact var handle 
> calls can be quite slow compared to Unsafe memory access).
>
I reverted the Java 20 changes. Numbers still looking good:

```
Benchmark (columnFamilyTestType)  (keyCount)  (keySize)  (valueSize)   
Mode Cnt      Score     Error   Units
GetBenchmarks.ffiGet no_column_family        1000        128         
4096  thrpt 30    596.329 ±   9.452  ops/ms
GetBenchmarks.ffiGet no_column_family        1000        128        
65536  thrpt 30     60.368 ±   0.842  ops/ms
GetBenchmarks.ffiGetPinnableSlice no_column_family        1000        
128         4096  thrpt 30    752.036 ±   5.655  ops/ms
GetBenchmarks.ffiGetPinnableSlice no_column_family        1000        
128        65536  thrpt 30    111.105 ±   2.304  ops/ms
GetBenchmarks.ffiGetRandom no_column_family        1000        
128         4096  thrpt 30    582.699 ±   3.379  ops/ms
GetBenchmarks.ffiGetRandom no_column_family        1000        
128        65536  thrpt 30     64.546 ±   1.829  ops/ms
GetBenchmarks.ffiIdentity no_column_family        1000        
128         4096  thrpt   30 57239.625 ± 674.849  ops/ms
GetBenchmarks.ffiIdentity no_column_family        1000        128        
65536  thrpt   30 57802.683 ± 589.983  ops/ms
GetBenchmarks.ffiPreallocatedGet no_column_family        1000        
128         4096  thrpt 30    717.237 ±   8.434  ops/ms
GetBenchmarks.ffiPreallocatedGet no_column_family        1000        
128        65536  thrpt 30     96.223 ±   1.143  ops/ms
GetBenchmarks.ffiPreallocatedGetRandom no_column_family        
1000        128         4096  thrpt 30    585.284 ±   5.415  ops/ms
GetBenchmarks.ffiPreallocatedGetRandom no_column_family        
1000        128        65536  thrpt 30     66.568 ±   0.843  ops/ms
GetBenchmarks.get no_column_family        1000        128         4096  
thrpt 30    553.515 ±   6.278  ops/ms
GetBenchmarks.get no_column_family        1000        128        65536  
thrpt 30     59.999 ±   0.935  ops/ms
GetBenchmarks.preallocatedByteBufferGet no_column_family        
1000        128         4096  thrpt 30    738.077 ±   8.767  ops/ms
GetBenchmarks.preallocatedByteBufferGet no_column_family        
1000        128        65536  thrpt 30     99.239 ±   1.398  ops/ms
GetBenchmarks.preallocatedByteBufferGetRandom no_column_family        
1000        128         4096  thrpt 30    722.680 ±  11.499  ops/ms
GetBenchmarks.preallocatedByteBufferGetRandom no_column_family        
1000        128        65536  thrpt 30    110.411 ±   1.117  ops/ms
GetBenchmarks.preallocatedGet no_column_family        1000        
128         4096  thrpt 30    700.405 ±   8.534  ops/ms
GetBenchmarks.preallocatedGet no_column_family        1000        
128        65536  thrpt 30     99.694 ±   2.122  ops/ms
```

Maurizio
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/panama-dev/attachments/20230310/3c89b521/attachment.htm>


More information about the panama-dev mailing list