'use strict';
const common = require('../common.js');
const ffi = require('node:ffi');
const { libraryPath, ensureFixtureLibrary } = require('./common.js');
const bench = common.createBenchmark(main, {
n: [1e7],
});
ensureFixtureLibrary();
const { lib, functions } = ffi.dlopen(libraryPath, {
pointer_to_usize: { return: 'u64', arguments: ['pointer'] },
});
const fn = functions.pointer_to_usize;
const bytes = Buffer.from([1, 2, 3, 4, 5, 6, 7, 8]);
const pointer = ffi.getRawPointer(bytes);
function main({ n }) {
bench.start();
for (let i = 0; i < n; ++i)
fn(pointer);
bench.end(n);
lib.close();
}