JSON tabela de preço

Benchmark created on


Setup

const totalTabelas = 3;
const totalProdutos = 100000;

function opcao1() {
  const json = {
    tabelas: []
  }

  for (let i=0; i<totalTabelas; i++) {
    
    const precos = [];
    for(let j=0; j<totalProdutos; j++) {
      precos.push({
        referenciacor: j.toString(),
        produtoId: j.toString(),
        precoTabela: 59.9,
        precoPromocional: 49.9,
        precoCadastro: 59.9
      });
    }
    
    json.tabelas.push({
      tabelaId: i.toString(),
      nome: `Tabela ${i}`,
      precos: precos
    });
  }
  
  return json;
}

function opcao2() {
  const totalRegistros = totalTabelas * totalProdutos;
  const json = [];
  for(let i=0; i<totalRegistros; i++) {
    json.push({
      tabelaId: i.toString(),
      nome: `Tabela ${i}`,
      referenciacor: i.toString(),
      produtoId: i.toString(),
      precoTabela: 59.9,
      precoPromocional: 49.9,
      precoCadastro: 59.9
    });
  }
 
  return json;
}

const dadosOpcao1 = opcao1();
const dadosOpcao2 = opcao2();
const tabelaId = Math.floor(Math.random() * totalTabelas).toString();
const produtoId = Math.floor(Math.random() * totalProdutos).toString();

Test runner

Ready to run.

Testing in
TestOps/sec
Serializando 1
JSON.stringify(dadosOpcao1);
ready
Serializando 2
JSON.stringify(dadosOpcao2);
ready
Buscando 1
const tabela = dadosOpcao1.tabelas.find(x => x.tabelaId == tabelaId);

const produto = tabela.precos.find(x => x.produtoId == produtoId);

console.log(produto);
ready
Buscando 2
const produto = dadosOpcao2.find(x => x.tabelaId == tabelaId && x.produtoId == produtoId);

console.log(produto);
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.