%PDF- %PDF-
Direktori : /home/vacivi36/vittasync.vacivitta.com.br/vittasync/node/benchmark/fs/ |
Current File : /home/vacivi36/vittasync.vacivitta.com.br/vittasync/node/benchmark/fs/bench-readSync.js |
'use strict'; const common = require('../common'); const fs = require('fs'); const tmpdir = require('../../test/common/tmpdir'); tmpdir.refresh(); const bufferSize = 1024; const sectorSize = 512; const bench = common.createBenchmark(main, { type: ['existing', 'non-existing'], n: [1e4], }); function main({ n, type }) { let fd; const tmpfile = { name: tmpdir.resolve(`.existing-file-${process.pid}`), len: bufferSize * n }; tmpfile.contents = Buffer.allocUnsafe(tmpfile.len); for (let offset = 0; offset < tmpfile.len; offset += sectorSize) { const fillByte = 256 * Math.random(); const nBytesToFill = Math.min(sectorSize, tmpfile.len - offset); tmpfile.contents.fill(fillByte, offset, offset + nBytesToFill); } fs.writeFileSync(tmpfile.name, tmpfile.contents); switch (type) { case 'existing': fd = fs.openSync(tmpfile.name, 'r', 0o666); break; case 'non-existing': fd = 1 << 30; break; default: new Error('Invalid type'); } const buffer = Buffer.alloc(bufferSize); bench.start(); for (let i = 0; i < n; i++) { try { fs.readSync(fd, buffer); } catch { // Continue regardless of error. } } bench.end(n); if (type === 'existing') fs.closeSync(fd); }