%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/vacivi36/vittasync.vacivitta.com.br/vittasync/node/benchmark/misc/
Upload File :
Create Path :
Current File : /home/vacivi36/vittasync.vacivitta.com.br/vittasync/node/benchmark/misc/freelist.js

'use strict';

const common = require('../common.js');

const bench = common.createBenchmark(main, {
  n: [100000],
}, {
  flags: ['--expose-internals'],
});

function main({ n }) {
  let FreeList = require('internal/freelist');
  if (FreeList.FreeList)
    FreeList = FreeList.FreeList;
  const poolSize = 1000;
  const list = new FreeList('test', poolSize, Object);
  let j;
  const used = [];

  // First, alloc `poolSize` items
  for (j = 0; j < poolSize; j++) {
    used.push(list.alloc());
  }

  bench.start();

  for (let i = 0; i < n; i++) {
    // Return all the items to the pool
    for (j = 0; j < poolSize; j++) {
      list.free(used[j]);
    }

    // Re-alloc from pool
    for (j = 0; j < poolSize; j++) {
      list.alloc();
    }
  }

  bench.end(n);
}

Zerion Mini Shell 1.0