Skip to content

jextract: bytes passing benchmarks#718

Draft
ktoso wants to merge 2 commits intoswiftlang:mainfrom
ktoso:wip-arrays-benchmarks
Draft

jextract: bytes passing benchmarks#718
ktoso wants to merge 2 commits intoswiftlang:mainfrom
ktoso:wip-arrays-benchmarks

Conversation

@ktoso
Copy link
Copy Markdown
Collaborator

@ktoso ktoso commented Apr 22, 2026

On an M2 macbook, I'll run later on linux as well but this is just about rough ideas:


Benchmark                                      (totalBytes)  Mode  Cnt       Score       Error  Units
JNIByteArrayBenchmark.acceptBuffer_jni                 4096  avgt    3       0.314 ±     0.214  us/op
JNIByteArrayBenchmark.acceptBuffer_jni                65536  avgt    3       1.085 ±     0.112  us/op
JNIByteArrayBenchmark.acceptBuffer_jni             16777216  avgt    3     287.848 ±    73.858  us/op
JNIByteArrayBenchmark.acceptBytes_jni                  4096  avgt    3      42.275 ±   115.404  us/op
JNIByteArrayBenchmark.acceptBytes_jni                 65536  avgt    3     628.038 ±   215.706  us/op
JNIByteArrayBenchmark.acceptBytes_jni              16777216  avgt    3  159460.417 ± 60075.214  us/op
JNIByteArrayBenchmark.acceptData_jni                   4096  avgt    3       0.015 ±     0.001  us/op
JNIByteArrayBenchmark.acceptData_jni                  65536  avgt    3       0.016 ±     0.005  us/op
JNIByteArrayBenchmark.acceptData_jni               16777216  avgt    3       0.015 ±     0.001  us/op
JNIByteArrayBenchmark.acceptMutableBuffer_jni          4096  avgt    3       0.340 ±     0.042  us/op
JNIByteArrayBenchmark.acceptMutableBuffer_jni         65536  avgt    3       3.109 ±     0.312  us/op
JNIByteArrayBenchmark.acceptMutableBuffer_jni      16777216  avgt    3     616.923 ±   467.034  us/op
JNIByteArrayBenchmark.acceptNested_jni                 4096  avgt    3      41.110 ±     7.999  us/op
JNIByteArrayBenchmark.acceptNested_jni                65536  avgt    3     629.788 ±   201.350  us/op
JNIByteArrayBenchmark.acceptNested_jni             16777216  avgt    3  156828.319 ± 16632.867  us/op
JNIByteArrayBenchmark.denseShard_jni                   4096  avgt    3      43.136 ±     3.939  us/op
JNIByteArrayBenchmark.denseShard_jni                  65536  avgt    3     630.803 ±   333.042  us/op
JNIByteArrayBenchmark.denseShard_jni               16777216  avgt    3  160196.253 ± 18796.422  us/op
JNIByteArrayBenchmark.echoBytes_jni                    4096  avgt    3      40.404 ±     5.682  us/op
JNIByteArrayBenchmark.echoBytes_jni                   65536  avgt    3     635.765 ±    37.211  us/op
JNIByteArrayBenchmark.echoBytes_jni                16777216  avgt    3  162764.906 ± 42880.991  us/op
JNIByteArrayBenchmark.echoData_jni                     4096  avgt    3       0.191 ±     0.102  us/op
JNIByteArrayBenchmark.echoData_jni                    65536  avgt    3       0.303 ±     4.236  us/op
JNIByteArrayBenchmark.echoData_jni                 16777216  avgt    3       0.189 ±     0.160  us/op
JNIByteArrayBenchmark.echoNested_jni                   4096  avgt    3      42.729 ±    10.072  us/op
JNIByteArrayBenchmark.echoNested_jni                  65536  avgt    3     633.071 ±   156.590  us/op
JNIByteArrayBenchmark.echoNested_jni               16777216  avgt    3  159919.885 ± 24323.902  us/op
JNIByteArrayBenchmark.returnBytes_jni                  4096  avgt    3       0.560 ±     0.307  us/op
JNIByteArrayBenchmark.returnBytes_jni                 65536  avgt    3       2.797 ±     7.527  us/op
JNIByteArrayBenchmark.returnBytes_jni              16777216  avgt    3     631.423 ±   354.456  us/op
JNIByteArrayBenchmark.returnData_jni                   4096  avgt    3       1.019 ±     0.231  us/op
JNIByteArrayBenchmark.returnData_jni                  65536  avgt    3      10.607 ±    11.934  us/op
JNIByteArrayBenchmark.returnData_jni               16777216  avgt    3    2516.995 ±  2224.608  us/op
JNIByteArrayBenchmark.returnNested_jni                 4096  avgt    3       2.423 ±     1.649  us/op
JNIByteArrayBenchmark.returnNested_jni                65536  avgt    3       5.400 ±     7.372  us/op
JNIByteArrayBenchmark.returnNested_jni             16777216  avgt    3     604.660 ±    65.900  us/op
JNIByteArrayBenchmark.sparseShard_jni                  4096  avgt    3     728.087 ±   188.162  us/op
JNIByteArrayBenchmark.sparseShard_jni                 65536  avgt    3     738.260 ±    99.180  us/op
JNIByteArrayBenchmark.sparseShard_jni              16777216  avgt    3     728.695 ±   209.163  us/op

@ktoso ktoso changed the title jextract/jni: bytes passing benchmarks jextract: bytes passing benchmarks Apr 22, 2026
@ktoso ktoso marked this pull request as draft April 22, 2026 09:11
@ktoso ktoso force-pushed the wip-arrays-benchmarks branch from 369e5ad to 61264f7 Compare April 22, 2026 11:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant