{"_id":"@agarimo/bench","name":"@agarimo/bench","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@agarimo/bench","version":"1.0.0","description":"Benchmark code","main":"src/index.js","scripts":{"test":"eslint --fix . && jest --silent --coverage --maxWorkers=4 ."},"repository":{"type":"git","url":"git+https://github.com/agarimojs/bench.git"},"author":{"name":"Jesus Seijas","email":"jseijas@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/agarimojs/bench/issues"},"homepage":"https://github.com/agarimojs/bench#readme","devDependencies":{"eslint":"^8.12.0","eslint-config-airbnb-base":"^15.0.0","eslint-config-prettier":"^8.5.0","eslint-plugin-import":"^2.26.0","eslint-plugin-jest":"^26.1.3","eslint-plugin-prettier":"^4.0.0","jest":"^27.5.1","prettier":"^2.6.2"},"publishConfig":{"access":"public"},"gitHead":"002657c2fd2b34c3a567c35f070a477c10b19008","_id":"@agarimo/bench@1.0.0","_nodeVersion":"15.14.0","_npmVersion":"7.7.6","dist":{"integrity":"sha512-WgxXKYimPq50Ldt1mBe1BQM9VFD08swjI5Rjbp2qnATZSetJEbJ7R/7dujiWd/wIoV+2daMkh1He6zZWuTMF0g==","shasum":"a18375d2d61138820e530596cfcc615aff1af754","tarball":"https://registry.npmjs.org/@agarimo/bench/-/bench-1.0.0.tgz","fileCount":8,"unpackedSize":15517,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA7Rc0YsZDPLfBOPPvVaqU94CDislJc+R7OrvnhJFxg8AiBTTcyWdbOnN+dpaEjoJMQL4viUDNuiieMtXkRWZ1YhqA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiTmjQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqxbQ//dfCuqctl7xoyr9YCx8qfhKeTXKo9Gwo5slKhLHlIEM44fey6\r\nOOn1GnboFaznDLQh/EfTu6ys7SL8EsN81UKx2B0itU/x3F8MW9Cnjp8LSSg/\r\nXyBf92aaphC8Guddt10gwv0G7jN0XcCC0IcUjLYHseo9Oo6bLXn57u31MZbP\r\nqgQUchNfLc+0ErNRKoMmh5JjjhmQj3SNxTAOR3E08NHccf7sWh7KXn6rUFsT\r\nyq7JDugi1GotBPOwrIv8hGO1zrqPG3Xz6W3YKODOElSGXD14ZDI8GLxDsiuG\r\ntzD00Bs+L98BF/EamXuqmsDZCTEQHm+Kj8TWtoSJeEsIPQaXA4LnuD/n/0fY\r\nQl0ll6xmXuS9fMFM/5KszQoDi//YNMRI67bMfqAb9Yq93j7iIIvRmNH3hid7\r\n+xHAc1vkdGLwdvJQWnlwHj1BtWtDyryc411r9A53n1GJrJW22djxcGVOfJdk\r\nyMvuOWmPwld3Hycthy3BFqkyC7h7ndJjL+lz6KPBCCO9eH74jtzlDNsg4G3K\r\nTeoq13f2ZIFoUc6Oq7T6mlrwBYknCOS0Fq9/pjVbMFj896GnSKG54WwrytQS\r\n3WKcsz/9HjxCCAizG6GAV0SEUQoBYsZhmZG65tSW+SYJar0H/4ucuR8PzMk/\r\nl6LP1B2UJ9wOEM5mF+f057icevyBi7xmdLI=\r\n=Kt/U\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jesus-seijas","email":"jseijas@gmail.com"},"directories":{},"maintainers":[{"name":"jesus-seijas","email":"jseijas@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bench_1.0.0_1649305807997_0.1891418003096701"},"_hasShrinkwrap":false}},"time":{"created":"2022-04-07T04:30:07.950Z","1.0.0":"2022-04-07T04:30:08.158Z","modified":"2022-04-07T04:30:08.344Z"},"maintainers":[{"name":"jesus-seijas","email":"jseijas@gmail.com"}],"description":"Benchmark code","homepage":"https://github.com/agarimojs/bench#readme","repository":{"type":"git","url":"git+https://github.com/agarimojs/bench.git"},"author":{"name":"Jesus Seijas","email":"jseijas@gmail.com"},"bugs":{"url":"https://github.com/agarimojs/bench/issues"},"license":"MIT","readme":"# @agarimo/bench\nBenchmark code.\n\n## Measure one algorithm\n\n```javascript\nconst { Bench } = require('@agarimo/bench');\n\nfunction init() {\n  return [7, 12, 0, -3, 4, 9, 11, 5, 3, 6, -2, 8];\n}\n\nfunction bubbleSort(arr) {\n  for (let i = arr.length - 1; i >= 0; i -= 1) {\n    for (let j = 1; j <= i; j += 1) {\n      if (arr[j - 1] > arr[j]) {\n        swap(arr, j - 1, j);\n      }\n    }\n  }\n  return arr;\n}\n\n(async() => {\n  const bench = new Bench({ duration: 50 });\n  bench.add('Bubble', bubbleSort, init);\n  const result = await bench.measure(bench.algorithms[0]);\n  console.log(result);\n})();\n```\n\nThis will show this in console:\n```\n{                                             \n  name: 'Bubble',                             \n  runs: 149270,                               \n  transactions: 149270,                       \n  elapsed: 50.0001,                           \n  timePerRun: 0.0003349641589066792,          \n  timePerTransaction: 0.0003349641589066792,  \n  runsPerSecond: 2985394.029211941,           \n  transactionsPerSecond: 2985394.029211941,   \n  resultIteration: [                          \n    -3, -2, 0, 3, 4,                          \n     5,  6, 7, 8, 9,                          \n    11, 12                                    \n  ]                                           \n}\n```                                            \n\n## Bench several algorithms\n\n```javascript\nconst { Bench } = require('@agarimo/bench');\n\nfunction init() {\n  return [7, 12, 0, -3, 4, 9, 11, 5, 3, 6, -2, 8];\n}\n\nfunction bubbleSort(arr) {\n  for (let i = arr.length - 1; i >= 0; i -= 1) {\n    for (let j = 1; j <= i; j += 1) {\n      if (arr[j - 1] > arr[j]) {\n        // eslint-disable-next-line no-param-reassign\n        [arr[j - 1], arr[j]] = [arr[j], arr[j - 1]];\n      }\n    }\n  }\n  return arr;\n}\n\nfunction selectionSort(arr) {\n  for (let i = 0; i < arr.length; i += 1) {\n    let minIdx = i;\n    for (let j = i + 1; j < arr.length; j += 1) {\n      if (arr[j] < arr[minIdx]) {\n        minIdx = j;\n      }\n    }\n    // eslint-disable-next-line no-param-reassign\n    [arr[i], arr[minIdx]] = [arr[minIdx], arr[i]];\n  }\n  return arr;\n}\n\n(async () => {\n  const bench = new Bench({ duration: 50 });\n  bench.add('Bubble', bubbleSort, init);\n  bench.add('Selection', selectionSort, init);\n  const result = await bench.run();\n  console.log(result);\n})();\n```\n\nThis will show in console:\n\n```\n[                                               \n  {                                             \n    name: 'Selection',                          \n    runs: 152039,                               \n    transactions: 152039,                       \n    elapsed: 50,                                \n    timePerRun: 0.00032886298910148054,         \n    timePerTransaction: 0.00032886298910148054, \n    runsPerSecond: 3040780,                     \n    transactionsPerSecond: 3040780,             \n    resultIteration: [                          \n      -3, -2, 0, 3, 4,                          \n       5,  6, 7, 8, 9,                          \n      11, 12                                    \n    ]                                           \n  },                                            \n  {                                             \n    name: 'Bubble',                             \n    runs: 137003,                               \n    transactions: 137003,                       \n    elapsed: 50,                                \n    timePerRun: 0.00036495551192309656,         \n    timePerTransaction: 0.00036495551192309656, \n    runsPerSecond: 2740060,                     \n    transactionsPerSecond: 2740060,             \n    resultIteration: [                          \n      -3, -2, 0, 3, 4,                          \n       5,  6, 7, 8, 9,                          \n      11, 12                                    \n    ]                                           \n  }                                             \n]                                               \n```","readmeFilename":"README.md"}