diff options
author | Aapo Alasuutari <aapo.alasuutari@gmail.com> | 2022-10-20 07:05:56 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-20 09:35:56 +0530 |
commit | 722ea20e860df0a568b5d97734ad8d89aa7382a9 (patch) | |
tree | 7b5dea0f32318dcc8d7d98b0cc6d4a3384a5805c /test_ffi/tests/bench.js | |
parent | 973069b341de65e8e32b91072ff5a745fe7e704a (diff) |
perf(ext/ffi): Fast UnsafePointerView read functions (#16351)
This PR makes pointer read methods of `Deno.UnsafePointerView` Fast API
compliant, with the exception of `getCString` which cannot be made fast
with current V8 Fast API.
Diffstat (limited to 'test_ffi/tests/bench.js')
-rw-r--r-- | test_ffi/tests/bench.js | 50 |
1 files changed, 49 insertions, 1 deletions
diff --git a/test_ffi/tests/bench.js b/test_ffi/tests/bench.js index b59097082..a20ee3c80 100644 --- a/test_ffi/tests/bench.js +++ b/test_ffi/tests/bench.js @@ -251,7 +251,7 @@ Deno.bench("hash()", () => { const { ffi_string } = dylib.symbols; Deno.bench( "c string", - () => new Deno.UnsafePointerView(ffi_string()).getCString(), + () => Deno.UnsafePointerView.getCString(ffi_string()), ); const { add_u32 } = dylib.symbols; @@ -643,3 +643,51 @@ const cstringPointerView = new Deno.UnsafePointerView( Deno.bench("Deno.UnsafePointerView#getCString", () => { cstringPointerView.getCString(); }); + +const bufferPointerView = new Deno.UnsafePointerView( + Deno.UnsafePointer.of(buffer), +); + +Deno.bench("Deno.UnsafePointerView#getBool", () => { + bufferPointerView.getBool(); +}); + +Deno.bench("Deno.UnsafePointerView#getUint8", () => { + bufferPointerView.getUint8(); +}); + +Deno.bench("Deno.UnsafePointerView#getInt8", () => { + bufferPointerView.getInt8(); +}); + +Deno.bench("Deno.UnsafePointerView#getUint16", () => { + bufferPointerView.getUint16(); +}); + +Deno.bench("Deno.UnsafePointerView#getInt16", () => { + bufferPointerView.getInt16(); +}); + +Deno.bench("Deno.UnsafePointerView#getUint32", () => { + bufferPointerView.getUint32(); +}); + +Deno.bench("Deno.UnsafePointerView#getInt32", () => { + bufferPointerView.getInt32(); +}); + +Deno.bench("Deno.UnsafePointerView#getBigUint64", () => { + bufferPointerView.getBigUint64(); +}); + +Deno.bench("Deno.UnsafePointerView#getBigInt64", () => { + bufferPointerView.getBigInt64(); +}); + +Deno.bench("Deno.UnsafePointerView#getFloat32", () => { + bufferPointerView.getFloat32(); +}); + +Deno.bench("Deno.UnsafePointerView#getFloat64", () => { + bufferPointerView.getFloat64(); +}); |