summaryrefslogtreecommitdiff
path: root/test_ffi/tests/bench.js
diff options
context:
space:
mode:
authorAapo Alasuutari <aapo.alasuutari@gmail.com>2022-10-20 07:05:56 +0300
committerGitHub <noreply@github.com>2022-10-20 09:35:56 +0530
commit722ea20e860df0a568b5d97734ad8d89aa7382a9 (patch)
tree7b5dea0f32318dcc8d7d98b0cc6d4a3384a5805c /test_ffi/tests/bench.js
parent973069b341de65e8e32b91072ff5a745fe7e704a (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.js50
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();
+});