{"_id":"bench-node","_rev":"30-f7b393f022e19535bf17a06cdfdaef18","name":"bench-node","dist-tags":{"beta":"0.11.0-beta.1","latest":"0.15.0"},"versions":{"0.0.1-beta.0":{"name":"bench-node","version":"0.0.1-beta.0","keywords":["benchmark","nodejs"],"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"license":"MIT","_id":"bench-node@0.0.1-beta.0","maintainers":[{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"contributors":[{"name":"H4ad"}],"homepage":"https://github.com/RafaelGSS/node-benchmark#readme","bugs":{"url":"https://github.com/RafaelGSS/node-benchmark/issues"},"dist":{"shasum":"711d445ba9f24c8f42663466a8bd402ed7fab1a4","tarball":"https://registry.npmjs.org/bench-node/-/bench-node-0.0.1-beta.0.tgz","fileCount":26,"integrity":"sha512-XcXE/RaYoM0hpzkwQhMto7yNrE3oM6jFrY7VZAQtDNoRDiHMl+MgKu4KP1Zdj+rHQmxR8hlFCOAfCCDqKsKW1Q==","signatures":[{"sig":"MEQCIDRrJLF/Kctc6IFgu29BvoAxSSUZYgsm9b44UIhUScFLAiADd48xoVhJSNQQMEahK6+Lc2paEEzu4685FMfbU9oz5g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":41932},"main":"lib/index.js","gitHead":"a5ec5445a777c9db12181cae70cd47def0ac56c2","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"},"repository":{"url":"git+https://github.com/RafaelGSS/node-benchmark.git","type":"git"},"_npmVersion":"9.8.0","description":"<!--introduced_in=REPLACEME-->","directories":{},"_nodeVersion":"20.5.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bench-node_0.0.1-beta.0_1703015360675_0.6293842277542254","host":"s3://npm-registry-packages"}},"0.0.2-beta.0":{"name":"bench-node","version":"0.0.2-beta.0","keywords":["benchmark","nodejs"],"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"license":"MIT","_id":"bench-node@0.0.2-beta.0","maintainers":[{"name":"h4ad","email":"vinicius.cardoso7252@gmail.com"},{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"contributors":[{"name":"H4ad"}],"homepage":"https://github.com/RafaelGSS/bench-node#readme","bugs":{"url":"https://github.com/RafaelGSS/bench-node/issues"},"dist":{"shasum":"249ebabe4552f959ab126e82252e8c4892ecd888","tarball":"https://registry.npmjs.org/bench-node/-/bench-node-0.0.2-beta.0.tgz","fileCount":29,"integrity":"sha512-5toi0IHadgZ0aHr3p+1UrA7fewRwU1GJM4aZt85PLWY9jrT/c/aGrF5ctmWZ2447iFWshlkSRYEiCaY/w2gMww==","signatures":[{"sig":"MEUCIQCihNrqpQBkyXcvVFlUYfJdVamymK/UTe3OPLahFCDP+gIgLXDphRWFMC58xl8n7+1FI4awav39pgwOYXso8TOhdqs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":42946},"main":"lib/index.js","gitHead":"e733d71f40e190c34e98fcd4ec8a379732bb9bb6","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"},"repository":{"url":"git+https://github.com/RafaelGSS/bench-node.git","type":"git"},"_npmVersion":"10.8.2","description":"<!--introduced_in=REPLACEME-->","directories":{},"_nodeVersion":"20.17.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bench-node_0.0.2-beta.0_1726083718077_0.5550090426861531","host":"s3://npm-registry-packages"}},"0.0.3-beta.0":{"name":"bench-node","version":"0.0.3-beta.0","keywords":["benchmark","nodejs"],"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"license":"MIT","_id":"bench-node@0.0.3-beta.0","maintainers":[{"name":"h4ad","email":"vinicius.cardoso7252@gmail.com"},{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"contributors":[{"name":"H4ad"}],"homepage":"https://github.com/RafaelGSS/bench-node#readme","bugs":{"url":"https://github.com/RafaelGSS/bench-node/issues"},"dist":{"shasum":"a6a3f7e2bdc21ce9298ff7abfa6c3b7940506980","tarball":"https://registry.npmjs.org/bench-node/-/bench-node-0.0.3-beta.0.tgz","fileCount":23,"integrity":"sha512-peIrqEFz4j0uDbSAi4l3P3d7goQybW1lrU/k2SX9YfaozKa9rG348Ros7eipkJcnTRT6kmv+vTWIElyqOUJTzQ==","signatures":[{"sig":"MEYCIQDzKJPDChBR06iXG7/p9xqlEeElsM1ZB7OQjGqwLOQyxgIhAMAcuAVDFqVFiAf1Yff0Rw8pGQwoi2g17m/N/51bVoZD","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40395},"main":"lib/index.js","gitHead":"43e1b15d0081bea083f43d83642a023cc35ea880","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"},"repository":{"url":"git+https://github.com/RafaelGSS/bench-node.git","type":"git"},"_npmVersion":"10.8.2","description":"The `bench-node` module gives the ability to measure operations per second of Node.js code block","directories":{},"_nodeVersion":"20.17.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bench-node_0.0.3-beta.0_1726109333411_0.0159320405245873","host":"s3://npm-registry-packages"}},"0.0.4-beta.0":{"name":"bench-node","version":"0.0.4-beta.0","keywords":["benchmark","nodejs"],"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"license":"MIT","_id":"bench-node@0.0.4-beta.0","maintainers":[{"name":"h4ad","email":"vinicius.cardoso7252@gmail.com"},{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"contributors":[{"name":"H4ad"}],"homepage":"https://github.com/RafaelGSS/bench-node#readme","bugs":{"url":"https://github.com/RafaelGSS/bench-node/issues"},"dist":{"shasum":"93bbb67b855cf6f1fec17e6e8394e464a5f1a96a","tarball":"https://registry.npmjs.org/bench-node/-/bench-node-0.0.4-beta.0.tgz","fileCount":26,"integrity":"sha512-k+taKg3o9rwxwkpzoaTe+yfqkjo8wpOWUh0FTsIF+8IAi/D5ruvyjEy2hIeGbLbioTJv5veod2wmT8cMRG17Fg==","signatures":[{"sig":"MEYCIQCZrsm5x45TXyiJ8DCYZzW5kE1evNnZmMTiHTWOFSutAgIhALD0sZqZsCOIFXoCeqjyASgBPVU3bJPHW9z8IyCQIyQ/","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":46223},"main":"lib/index.js","gitHead":"72146454d4647bd4fae1db9f3d696c492736cca6","scripts":{"test":"node --test --allow-natives-syntax"},"_npmUser":{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"},"repository":{"url":"git+https://github.com/RafaelGSS/bench-node.git","type":"git"},"_npmVersion":"10.8.2","description":"The `bench-node` module gives the ability to measure operations per second of Node.js code block","directories":{},"_nodeVersion":"20.17.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bench-node_0.0.4-beta.0_1726262266231_0.13620293365161418","host":"s3://npm-registry-packages"}},"0.0.4-beta.1":{"name":"bench-node","version":"0.0.4-beta.1","keywords":["benchmark","nodejs"],"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"license":"MIT","_id":"bench-node@0.0.4-beta.1","maintainers":[{"name":"h4ad","email":"vinicius.cardoso7252@gmail.com"},{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"contributors":[{"name":"H4ad"}],"homepage":"https://github.com/RafaelGSS/bench-node#readme","bugs":{"url":"https://github.com/RafaelGSS/bench-node/issues"},"dist":{"shasum":"d9d1bd50269504565849f594f209f04a6733982b","tarball":"https://registry.npmjs.org/bench-node/-/bench-node-0.0.4-beta.1.tgz","fileCount":35,"integrity":"sha512-lr3KNXp+KNpsNjG9wqYd8Dn51NZ782XVGe92AnA5W/AOwCLYJKWaSDzL4zg/1F34JZOjL0bRF/pv5vQoHhlfKg==","signatures":[{"sig":"MEUCIA4Rqn3G/1p0oTDtyuulMx/F2LhumNz0urrOAZP7AufXAiEA1DtntQoB2b9R3XmnRm2T2QhcNdNZVRJKAd03vVXKh0o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61018},"main":"lib/index.js","gitHead":"cd4abd7a47c629acf4006db1d159f3ebe1baa2e9","scripts":{"test":"node --test --allow-natives-syntax"},"_npmUser":{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"},"repository":{"url":"git+https://github.com/RafaelGSS/bench-node.git","type":"git"},"_npmVersion":"10.8.2","description":"The `bench-node` module gives the ability to measure operations per second of Node.js code block","directories":{},"_nodeVersion":"22.8.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bench-node_0.0.4-beta.1_1726371761431_0.9508342749153751","host":"s3://npm-registry-packages"}},"0.0.4-beta.2":{"name":"bench-node","version":"0.0.4-beta.2","keywords":["benchmark","nodejs"],"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"license":"MIT","_id":"bench-node@0.0.4-beta.2","maintainers":[{"name":"h4ad","email":"vinicius.cardoso7252@gmail.com"},{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"contributors":[{"name":"H4ad"}],"homepage":"https://github.com/RafaelGSS/bench-node#readme","bugs":{"url":"https://github.com/RafaelGSS/bench-node/issues"},"dist":{"shasum":"6db3a4a7cc63a9cf2acf7da3e4bbd2166da74f12","tarball":"https://registry.npmjs.org/bench-node/-/bench-node-0.0.4-beta.2.tgz","fileCount":38,"integrity":"sha512-LSDD9iqQbeVyeHPoU1rjDy2RcpCafIJjwQoy6FGqaPB/Vz69P0B0UKdTCz0+Jt5SCs22PFpGFGkXTMkvgWkHsw==","signatures":[{"sig":"MEYCIQDa0WpOUsEr84IBPIJYVvijU6ZhwdlgN6E0naO8e1/x3AIhAL5XFbl7PVx9ELuSILz/TjQgU5Uk8VAadSDmoWlpQd5y","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61385},"main":"lib/index.js","gitHead":"35de97f64d7c9d67ffab5c0bd34255d1fa116d96","scripts":{"test":"node --test --allow-natives-syntax"},"_npmUser":{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"},"repository":{"url":"git+https://github.com/RafaelGSS/bench-node.git","type":"git"},"_npmVersion":"10.8.2","description":"The `bench-node` module allows you to measure operations per second of Node.js code blocks.","directories":{},"_nodeVersion":"20.17.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bench-node_0.0.4-beta.2_1727441920710_0.021940672424173746","host":"s3://npm-registry-packages"}},"0.0.4-beta.3":{"name":"bench-node","version":"0.0.4-beta.3","keywords":["benchmark","nodejs"],"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"license":"MIT","_id":"bench-node@0.0.4-beta.3","maintainers":[{"name":"h4ad","email":"vinicius.cardoso7252@gmail.com"},{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"contributors":[{"name":"H4ad"}],"homepage":"https://github.com/RafaelGSS/bench-node#readme","bugs":{"url":"https://github.com/RafaelGSS/bench-node/issues"},"dist":{"shasum":"5307f799a6aae4d84e9d1b998dcca5a44c877cb9","tarball":"https://registry.npmjs.org/bench-node/-/bench-node-0.0.4-beta.3.tgz","fileCount":38,"integrity":"sha512-Wh7fGrqTtnsA/+07mwECFSJ8Wp+UMNI3avTi4azg8vsf0OLkH85UJqpGTTekzeLUBLRgejI9pqtkHhikxs/gtw==","signatures":[{"sig":"MEUCIHP9UyvAFizvZhGpzPIin/ZWcWG3ginThNrkv75HnnO8AiEAp5EGuN+AVsc25NAJbBEGsiRVvFysla85yewET2ZiI1Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61892},"main":"lib/index.js","gitHead":"1b6bf53e597405b38a24eeb78b801edcf2a09b69","scripts":{"test":"node --test --allow-natives-syntax"},"_npmUser":{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"},"repository":{"url":"git+https://github.com/RafaelGSS/bench-node.git","type":"git"},"_npmVersion":"10.8.2","description":"The `bench-node` module allows you to measure operations per second of Node.js code blocks.","directories":{},"_nodeVersion":"20.17.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bench-node_0.0.4-beta.3_1727443210085_0.7388078006578058","host":"s3://npm-registry-packages"}},"0.1.0":{"name":"bench-node","version":"0.1.0","keywords":["benchmark","nodejs"],"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"license":"MIT","_id":"bench-node@0.1.0","maintainers":[{"name":"h4ad","email":"vinicius.cardoso7252@gmail.com"},{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"contributors":[{"name":"H4ad"}],"homepage":"https://github.com/RafaelGSS/bench-node#readme","bugs":{"url":"https://github.com/RafaelGSS/bench-node/issues"},"dist":{"shasum":"3c74d47e01a49e41c352f705c39bf2ac2df6693b","tarball":"https://registry.npmjs.org/bench-node/-/bench-node-0.1.0.tgz","fileCount":54,"integrity":"sha512-bqsGRu63dp5ocHQhSdesfujRqhj4GbP75kHKE+0FMhYA1MmyxwrwAbj8lTrqlenlmQLT9ya8idjLYjPIzf7Mmg==","signatures":[{"sig":"MEYCIQCQADzXviqeqdlrZS5EskUi6r9Imul23g0BnR+SllG8IAIhAPeCyMxuBAzphoLlfimOwfcU9j6FU7OoNi40RhQniBiy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":92711},"main":"lib/index.js","gitHead":"6337acf555c6c53780d90fed648f2411c20cc64d","scripts":{"test":"node --test --allow-natives-syntax"},"_npmUser":{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"},"repository":{"url":"git+https://github.com/RafaelGSS/bench-node.git","type":"git"},"_npmVersion":"10.8.2","description":"The `bench-node` module allows you to measure operations per second of Node.js code blocks.","directories":{},"_nodeVersion":"20.17.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bench-node_0.1.0_1729026437837_0.45062271591083003","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"bench-node","version":"0.2.0","keywords":["benchmark","nodejs"],"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"license":"MIT","_id":"bench-node@0.2.0","maintainers":[{"name":"h4ad","email":"vinicius.cardoso7252@gmail.com"},{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"contributors":[{"name":"H4ad"}],"homepage":"https://github.com/RafaelGSS/bench-node#readme","bugs":{"url":"https://github.com/RafaelGSS/bench-node/issues"},"dist":{"shasum":"c66e5b8b9b91738d48c4f38198c7b242d98e6329","tarball":"https://registry.npmjs.org/bench-node/-/bench-node-0.2.0.tgz","fileCount":63,"integrity":"sha512-5DNh4X5pQ0CBpnkML5U+kYW1BbuHgkBra3x1sZLEnmijUDgr9XDBHdLngrVVJZlf7Ox/HYxOl380UcImxhWQ6Q==","signatures":[{"sig":"MEYCIQCqgAsOPDNQIJXHKu8n2SGipj+72AuKSIEL5UTR0GQz7gIhAIXtEvKv+uWZafWQvIQPTLFsU8fe9jnVdPFcncVLcnrm","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":102886},"main":"lib/index.js","gitHead":"fe0ddcba125c10fd1a39652c09e7d5ff89963ec2","scripts":{"test":"node --test --allow-natives-syntax"},"_npmUser":{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"},"repository":{"url":"git+https://github.com/RafaelGSS/bench-node.git","type":"git"},"_npmVersion":"10.8.2","description":"The `bench-node` module allows you to measure operations per second of Node.js code blocks.","directories":{},"_nodeVersion":"20.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bench-node_0.2.0_1729538488873_0.3832607863463804","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"bench-node","version":"0.2.1","keywords":["benchmark","nodejs"],"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"license":"MIT","_id":"bench-node@0.2.1","maintainers":[{"name":"h4ad","email":"vinicius.cardoso7252@gmail.com"},{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"contributors":[{"name":"H4ad"}],"homepage":"https://github.com/RafaelGSS/bench-node#readme","bugs":{"url":"https://github.com/RafaelGSS/bench-node/issues"},"dist":{"shasum":"5dd355b429701f606f59d5be9fa55da6a29bfec0","tarball":"https://registry.npmjs.org/bench-node/-/bench-node-0.2.1.tgz","fileCount":63,"integrity":"sha512-KpzrH3iC8NwdrZJj0CQb0ypjF2JxTIm89WyiCNnsp/5jpEW9B+cof2qBu/8UruI+C7GlqJv1SVe0KU11mDTtFQ==","signatures":[{"sig":"MEUCIA8qFjXvL/1v05ckvc6exzLZcafhYQTtuPBbX5YzlF+CAiEAtzXghuE9AvB2S7SmwyfPE0gID/aUw7JgOtkk01BR1sQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":103092},"main":"lib/index.js","gitHead":"8f0f806c18ecf2e2e16e12b7572f9f0e31f1cbba","scripts":{"test":"node --test --allow-natives-syntax"},"_npmUser":{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"},"repository":{"url":"git+https://github.com/RafaelGSS/bench-node.git","type":"git"},"_npmVersion":"10.8.2","description":"The `bench-node` module allows you to measure operations per second of Node.js code blocks.","directories":{},"_nodeVersion":"20.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bench-node_0.2.1_1729540203448_0.8877751623720016","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"bench-node","version":"0.3.0","keywords":["benchmark","nodejs"],"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"license":"MIT","_id":"bench-node@0.3.0","maintainers":[{"name":"h4ad","email":"vinicius.cardoso7252@gmail.com"},{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"contributors":[{"name":"H4ad"}],"homepage":"https://github.com/RafaelGSS/bench-node#readme","bugs":{"url":"https://github.com/RafaelGSS/bench-node/issues"},"dist":{"shasum":"7497647c91c33d845aeb5cd35714a0b8fbe9eca8","tarball":"https://registry.npmjs.org/bench-node/-/bench-node-0.3.0.tgz","fileCount":64,"integrity":"sha512-3gZ5NbOgo9h1WsUnh1QiR3y7Xflguw0Ox8GM0DPjJWDEQ7a8Jxi0mltojZz7B7IyrzNKG49HaatOP6qI/ODhqQ==","signatures":[{"sig":"MEUCIQD+yTuysBXpL/t3kLpGbS/r44oLK4ZEzg2gJaNOdI9llQIgNbkPPpYNDbkSn1s30q5Oz/Lv7qvZ7NWVFLAeNhlmEdo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":107746},"main":"lib/index.js","gitHead":"08f4b1688ff30a1918f772cc7bfa75766eb91eea","scripts":{"test":"node --test --allow-natives-syntax"},"_npmUser":{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"},"repository":{"url":"git+https://github.com/RafaelGSS/bench-node.git","type":"git"},"_npmVersion":"10.8.3","description":"The `bench-node` module allows you to measure operations per second of Node.js code blocks.","directories":{},"_nodeVersion":"22.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bench-node_0.3.0_1731767517842_0.9459908524640384","host":"s3://npm-registry-packages"}},"0.4.0":{"name":"bench-node","version":"0.4.0","keywords":["benchmark","nodejs"],"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"license":"MIT","_id":"bench-node@0.4.0","maintainers":[{"name":"h4ad","email":"vinicius.cardoso7252@gmail.com"},{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"contributors":[{"name":"H4ad"}],"homepage":"https://github.com/RafaelGSS/bench-node#readme","bugs":{"url":"https://github.com/RafaelGSS/bench-node/issues"},"dist":{"shasum":"f3d87158fe8390ebf95dec074a5c8d81750d96ba","tarball":"https://registry.npmjs.org/bench-node/-/bench-node-0.4.0.tgz","fileCount":63,"integrity":"sha512-qqK5wyjOL48aWai7OLQy0o3v5pedlZYUtyfX4UtoQa1raEdJCOW04nT2mOGnC2UuqG8AAz8TntsNiUfe+9QyzQ==","signatures":[{"sig":"MEYCIQC5EOdPnaSulJZ/Opr6JPhhKt5dqqxC89OcROxNZS8GuQIhANJzfbtna0N1rz9whx+EHvB43l9crP99dZ10vAmXea1j","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":111820},"main":"lib/index.js","gitHead":"e8d43be0de61257e6e6a06487d685e531922f770","scripts":{"test":"node --test --allow-natives-syntax"},"_npmUser":{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"},"repository":{"url":"git+https://github.com/RafaelGSS/bench-node.git","type":"git"},"_npmVersion":"10.9.0","description":"The `bench-node` module allows you to measure operations per second of Node.js code blocks.","directories":{},"_nodeVersion":"23.3.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bench-node_0.4.0_1733410519431_0.19293056186913327","host":"s3://npm-registry-packages"}},"0.4.1":{"name":"bench-node","version":"0.4.1","keywords":["benchmark","nodejs"],"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"license":"MIT","_id":"bench-node@0.4.1","maintainers":[{"name":"h4ad","email":"vinicius.cardoso7252@gmail.com"},{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"contributors":[{"name":"H4ad"}],"homepage":"https://github.com/RafaelGSS/bench-node#readme","bugs":{"url":"https://github.com/RafaelGSS/bench-node/issues"},"dist":{"shasum":"b161c56daef3328ae672ee615c73ebb144cf812a","tarball":"https://registry.npmjs.org/bench-node/-/bench-node-0.4.1.tgz","fileCount":64,"integrity":"sha512-yCJMrjPYCwvv0Nr/rxIYh2yO4Zyq/OYQuZkWTJsTBNCD0Z3ctCoo3JpAv6llkBro2R7a891MZZfE6nzhdwU5NA==","signatures":[{"sig":"MEYCIQCztsuYExH3hFnSGgPQTB2hfYfhkK6aBswDR6DLVWM1eAIhALTQZQ2mlXNtgHoARn1CjEL8ynblfbJtJdiXPCL0UBEp","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113138},"main":"lib/index.js","gitHead":"6287d898b2bfd4dc1e64633574ab6bda8d6132a4","scripts":{"test":"node --test --allow-natives-syntax"},"_npmUser":{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"},"repository":{"url":"git+https://github.com/RafaelGSS/bench-node.git","type":"git"},"_npmVersion":"10.9.0","description":"The `bench-node` module allows you to measure operations per second of Node.js code blocks.","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bench-node_0.4.1_1733695978571_0.9418572343529259","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"bench-node","version":"0.5.0","keywords":["benchmark","nodejs"],"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"license":"MIT","_id":"bench-node@0.5.0","maintainers":[{"name":"h4ad","email":"vinicius.cardoso7252@gmail.com"},{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"contributors":[{"name":"H4ad"}],"homepage":"https://github.com/RafaelGSS/bench-node#readme","bugs":{"url":"https://github.com/RafaelGSS/bench-node/issues"},"dist":{"shasum":"db58b4ad72a53a016c62a4b39b2f2b095d5e9828","tarball":"https://registry.npmjs.org/bench-node/-/bench-node-0.5.0.tgz","fileCount":68,"integrity":"sha512-Db8kKZgFGdmJN1Agl3eTxySBSQX6REZjMjZpaOgU0p2crQa3kZSTdQbYapsIcxv7K3e67ViiOwE7+sWhbfVVPQ==","signatures":[{"sig":"MEUCIQCu1jQ6oa9xKsemhgx7dxG60+3xRNWmNW0smfzNqVI9kwIgQDtNEoaCfobzrCxvHPOj0fGh1H6ELClGuF+NXjPgrQ4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":122442},"main":"lib/index.js","gitHead":"a46008f90f7bf21bf0194a5e4a5ea3e66018aa29","scripts":{"test":"node --test --allow-natives-syntax"},"_npmUser":{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"},"repository":{"url":"git+https://github.com/RafaelGSS/bench-node.git","type":"git"},"_npmVersion":"10.9.0","description":"The `bench-node` module allows you to measure operations per second of Node.js code blocks.","directories":{},"_nodeVersion":"22.11.0","dependencies":{"piscina":"^4.8.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bench-node_0.5.0_1735076051422_0.724243061142843","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"bench-node","version":"0.5.1","keywords":["benchmark","nodejs"],"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"license":"MIT","_id":"bench-node@0.5.1","maintainers":[{"name":"h4ad","email":"vinicius.cardoso7252@gmail.com"},{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"contributors":[{"name":"H4ad"}],"homepage":"https://github.com/RafaelGSS/bench-node#readme","bugs":{"url":"https://github.com/RafaelGSS/bench-node/issues"},"dist":{"shasum":"0f8d89ffaf10e6a49cb3182417baba068b6ff7e3","tarball":"https://registry.npmjs.org/bench-node/-/bench-node-0.5.1.tgz","fileCount":78,"integrity":"sha512-QHHH8o3mcaMCFyuWm81RvleSmXC4qZrMrKWFIwXTMkehhPwjFvqYgibmLjKi7zk8f4O5yFEn8XNAA04PymPFEA==","signatures":[{"sig":"MEUCIQDJoqQecoxkNu/hJOULHIyPl3RTaryJP0DlmgY3T5+sxgIgDsbtvtQxIcPeUNiVsNqp3R8Yy9YPI4BSVvgbRYMbFjY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/bench-node@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":145751},"main":"lib/index.js","gitHead":"2d0d11a9df2bfaec57736f1bfd16042839db2608","scripts":{"lint":"biome lint .","test":"node --test --allow-natives-syntax","format":"biome format --write .","lint:ci":"biome ci .","lint:fix":"biome lint --write .","lint:force-fix":"biome lint --write --unsafe ."},"_npmUser":{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"},"repository":{"url":"git+https://github.com/RafaelGSS/bench-node.git","type":"git"},"_npmVersion":"10.9.0","description":"The `bench-node` module allows you to measure operations per second of Node.js code blocks.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"piscina":"^4.8.0"},"_hasShrinkwrap":false,"devDependencies":{"@biomejs/biome":"1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/bench-node_0.5.1_1737330161652_0.6819748782201398","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"bench-node","version":"0.5.2","keywords":["benchmark","nodejs"],"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"license":"MIT","_id":"bench-node@0.5.2","maintainers":[{"name":"h4ad","email":"vinicius.cardoso7252@gmail.com"},{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"contributors":[{"name":"H4ad"}],"homepage":"https://github.com/RafaelGSS/bench-node#readme","bugs":{"url":"https://github.com/RafaelGSS/bench-node/issues"},"dist":{"shasum":"17fecb4ec5982475db80ccfb660dd608bf0bbc90","tarball":"https://registry.npmjs.org/bench-node/-/bench-node-0.5.2.tgz","fileCount":78,"integrity":"sha512-ZuNNWOqN9jKLCnWltttceVZa4fPXgLt4jgM2WeQHmst/AXsg9aPoC71y/rPdOh/04Jr43rXt5fuZ/rhu3T1ynA==","signatures":[{"sig":"MEQCIC3QkTInZVIt7slkJhiWe0ug8xqNZnoXN3v0iiQThPqIAiAU1JzXDvjNcwqpu3L6JAYZsWzEpxuiXcwMAxNezTRdaA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/bench-node@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":150996},"main":"lib/index.js","gitHead":"9c5b493f7e3669e23f1760caaedeaece8b129f02","scripts":{"lint":"biome lint .","test":"node --test --allow-natives-syntax","format":"biome format --write .","lint:ci":"biome ci .","lint:fix":"biome lint --write .","lint:force-fix":"biome lint --write --unsafe ."},"_npmUser":{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"},"repository":{"url":"git+https://github.com/RafaelGSS/bench-node.git","type":"git"},"_npmVersion":"10.9.2","description":"<h1 align=\"center\">   <img     src=\"https://raw.githubusercontent.com/RafaelGSS/bench-node/refs/heads/main/assets/logo.svg\"     alt=\"Bench Node logo\"   />   Bench Node </h1>","directories":{},"_nodeVersion":"22.13.1","dependencies":{"piscina":"^4.8.0"},"_hasShrinkwrap":false,"devDependencies":{"@biomejs/biome":"1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/bench-node_0.5.2_1738192931315_0.5865541733938535","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"bench-node","version":"0.5.3","keywords":["benchmark","nodejs"],"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"license":"MIT","_id":"bench-node@0.5.3","maintainers":[{"name":"h4ad","email":"vinicius.cardoso7252@gmail.com"},{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"contributors":[{"name":"H4ad"}],"homepage":"https://github.com/RafaelGSS/bench-node#readme","bugs":{"url":"https://github.com/RafaelGSS/bench-node/issues"},"dist":{"shasum":"a891cb4d9f248909da7072a68211f78831d6ed84","tarball":"https://registry.npmjs.org/bench-node/-/bench-node-0.5.3.tgz","fileCount":78,"integrity":"sha512-1Ai1Sp1O5LIubD6RAPkN93cT67kaSQhGO1VpGRLLNgbmXNIO9covRDpEKnOZ5OJmSAEyFGxKKuaovqV6bvY7tw==","signatures":[{"sig":"MEUCIQDwOPoEFZmbufduxRW1AzT1p9ryNu+U44Lp2AESZpGNpQIgK2fHO6pCbJfgimmzlp5UhDuFifkYf2NWaEGpEntojPI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/bench-node@0.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":152204},"main":"lib/index.js","gitHead":"97d65a71b54708af0dcc3db204cd9be59c8a0283","scripts":{"lint":"biome lint .","test":"node --test --allow-natives-syntax","format":"biome format --write .","lint:ci":"biome ci .","lint:fix":"biome lint --write .","lint:force-fix":"biome lint --write --unsafe ."},"_npmUser":{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"},"repository":{"url":"git+https://github.com/RafaelGSS/bench-node.git","type":"git"},"_npmVersion":"10.9.2","description":"<h1 align=\"center\">   <img     src=\"https://raw.githubusercontent.com/RafaelGSS/bench-node/refs/heads/main/assets/logo.svg\"     alt=\"Bench Node logo\"   />   Bench Node </h1>","directories":{},"_nodeVersion":"22.13.1","dependencies":{"piscina":"^4.8.0"},"_hasShrinkwrap":false,"devDependencies":{"@biomejs/biome":"1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/bench-node_0.5.3_1740407134097_0.9336064361328233","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"bench-node","version":"0.5.4","keywords":["benchmark","nodejs"],"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"license":"MIT","_id":"bench-node@0.5.4","maintainers":[{"name":"h4ad","email":"vinicius.cardoso7252@gmail.com"},{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"contributors":[{"name":"H4ad"}],"homepage":"https://github.com/RafaelGSS/bench-node#readme","bugs":{"url":"https://github.com/RafaelGSS/bench-node/issues"},"dist":{"shasum":"bebf89866ad1ce1573b34cb31f1d68cb0df539d2","tarball":"https://registry.npmjs.org/bench-node/-/bench-node-0.5.4.tgz","fileCount":78,"integrity":"sha512-Y2JxV+7CBidBvnKwyWwfRnT0xcX/9ASkirFR5A6FZqdYvX6J2NcGqYjftdvrZZscRsmYKyyegFydJC1bxMuPKA==","signatures":[{"sig":"MEUCIFfyyaz0e0oZfF4fx4Ra6hjBeqZ6Z6oMnMM3n04L2BePAiEAgVWud5HO2Ar0hNeIgZFjpRx1KwZi5erARZXUU4yCvJU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/bench-node@0.5.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":154773},"main":"lib/index.js","gitHead":"4352266aadbf0057295e5e5b9ae5c75ff83d1de1","scripts":{"lint":"biome lint .","test":"node --test --allow-natives-syntax","format":"biome format --write .","lint:ci":"biome ci .","lint:fix":"biome lint --write .","lint:force-fix":"biome lint --write --unsafe ."},"_npmUser":{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"},"repository":{"url":"git+https://github.com/RafaelGSS/bench-node.git","type":"git"},"_npmVersion":"10.9.2","description":"<h1 align=\"center\">   <img     src=\"https://raw.githubusercontent.com/RafaelGSS/bench-node/refs/heads/main/assets/logo.svg\"     alt=\"Bench Node logo\"   />   Bench Node </h1>","directories":{},"_nodeVersion":"22.14.0","dependencies":{"piscina":"^4.8.0"},"_hasShrinkwrap":false,"devDependencies":{"@biomejs/biome":"1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/bench-node_0.5.4_1741889210162_0.3868723016443454","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"bench-node","version":"0.6.0","keywords":["benchmark","nodejs"],"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"license":"MIT","_id":"bench-node@0.6.0","maintainers":[{"name":"h4ad","email":"vinicius.cardoso7252@gmail.com"},{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"contributors":[{"name":"H4ad"}],"homepage":"https://github.com/RafaelGSS/bench-node#readme","bugs":{"url":"https://github.com/RafaelGSS/bench-node/issues"},"dist":{"shasum":"535cdeed0e005a01d2424f2409c599142fb9e449","tarball":"https://registry.npmjs.org/bench-node/-/bench-node-0.6.0.tgz","fileCount":80,"integrity":"sha512-/bnbucUQMzuMaYcfPUsqjByHheq5thnKICk43yC1sBlLUFihXjN5WslfhNK5/b8pPDz7WUFN1lMgpwjaQ3+wFg==","signatures":[{"sig":"MEUCID9I6veNmXkQmvNMwz4G7OhMkpi8RKvdwbBbbHuE0SvLAiEAm7qxWD7EC7Fjza9Oqjy9LyTEKfbFMCwqCBrfJ33VJwg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/bench-node@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":177104},"main":"lib/index.js","gitHead":"81bc38f3ecc8e79e88094725ce91ba0b55e1ca89","scripts":{"lint":"biome lint .","test":"node --test --allow-natives-syntax","format":"biome format --write .","lint:ci":"biome ci .","lint:fix":"biome lint --write .","lint:force-fix":"biome lint --write --unsafe ."},"_npmUser":{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"},"repository":{"url":"git+https://github.com/RafaelGSS/bench-node.git","type":"git"},"_npmVersion":"10.9.2","description":"<h1 align=\"center\">   <img     src=\"https://raw.githubusercontent.com/RafaelGSS/bench-node/refs/heads/main/assets/logo.svg\"     alt=\"Bench Node logo\"   />   Bench Node </h1>","directories":{},"_nodeVersion":"22.15.0","dependencies":{"piscina":"^4.8.0"},"_hasShrinkwrap":false,"devDependencies":{"@biomejs/biome":"1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/bench-node_0.6.0_1746034287588_0.4546335805685302","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"bench-node","version":"0.7.0","keywords":["benchmark","nodejs"],"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"license":"MIT","_id":"bench-node@0.7.0","maintainers":[{"name":"h4ad","email":"vinicius.cardoso7252@gmail.com"},{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"contributors":[{"name":"H4ad"}],"homepage":"https://github.com/RafaelGSS/bench-node#readme","bugs":{"url":"https://github.com/RafaelGSS/bench-node/issues"},"dist":{"shasum":"6006ba93eed0ff177d05e5836965cef5d8fc11d1","tarball":"https://registry.npmjs.org/bench-node/-/bench-node-0.7.0.tgz","fileCount":80,"integrity":"sha512-c6I/AdNgEP5kCIgm0Uz+AhsxpQOOIBHGESJhxrH+9ii2++fXvGXMd85fm5xlnbyjJtG0YionieqNJdWiwMi0MA==","signatures":[{"sig":"MEUCIGdh7nBcnfRQ24CbpzB4Wp4P3Jf4DXR0AUQpBvHW4AbgAiEAn3bBksgFjWDo/C/VN+LqZOhe+rcBAf/YyjaLRrpH95I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/bench-node@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":178791},"main":"lib/index.js","gitHead":"2e7e56b16f6a9080b44fd0076968cef93b8a960a","scripts":{"lint":"biome lint .","test":"node --test --allow-natives-syntax","format":"biome format --write .","lint:ci":"biome ci .","lint:fix":"biome lint --write .","lint:force-fix":"biome lint --write --unsafe ."},"_npmUser":{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"},"repository":{"url":"git+https://github.com/RafaelGSS/bench-node.git","type":"git"},"_npmVersion":"10.9.2","description":"<h1 align=\"center\">   <img     src=\"https://raw.githubusercontent.com/RafaelGSS/bench-node/refs/heads/main/assets/logo.svg\"     alt=\"Bench Node logo\"   />   Bench Node </h1>","directories":{},"_nodeVersion":"22.15.0","dependencies":{"piscina":"^4.8.0"},"_hasShrinkwrap":false,"devDependencies":{"@biomejs/biome":"1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/bench-node_0.7.0_1747317354729_0.16685763337982196","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"bench-node","version":"0.8.0","keywords":["benchmark","nodejs"],"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"license":"MIT","_id":"bench-node@0.8.0","maintainers":[{"name":"h4ad","email":"vinicius.cardoso7252@gmail.com"},{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"contributors":[{"name":"H4ad"}],"homepage":"https://github.com/RafaelGSS/bench-node#readme","bugs":{"url":"https://github.com/RafaelGSS/bench-node/issues"},"dist":{"shasum":"8fb9f41b2b81a157155085d2a9a812a0820966b0","tarball":"https://registry.npmjs.org/bench-node/-/bench-node-0.8.0.tgz","fileCount":84,"integrity":"sha512-idoSHSWkVCdwHdXCyiuyDwX/WIswNCAv8CP1yuSI1VmKdNsQcD/Xqh9vU7YwGpo48fRWaW3u6aaoBwu+/76JJw==","signatures":[{"sig":"MEUCIFwq5kz4jtEL4E4/6o0ZreDdfalHhwXgJSa1iahJK02TAiEAjooRuIX5nN619Iv69VhpKoECPh3Nx11xQEmyHhXzQP0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/bench-node@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":204882},"main":"lib/index.js","types":"index.d.ts","gitHead":"ebac341db11e5a4d254047f05ce88da830381021","scripts":{"lint":"biome lint .","test":"node --test --allow-natives-syntax","format":"biome format --write .","lint:ci":"biome ci .","lint:fix":"biome lint --write .","test:types":"tsd -f types/types.test-d.ts","lint:force-fix":"biome lint --write --unsafe ."},"_npmUser":{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"},"repository":{"url":"git+https://github.com/RafaelGSS/bench-node.git","type":"git"},"_npmVersion":"10.9.2","description":"<h1 align=\"center\">   <img     src=\"https://raw.githubusercontent.com/RafaelGSS/bench-node/refs/heads/main/assets/logo.svg\"     alt=\"Bench Node logo\"   />   Bench Node </h1>","directories":{},"_nodeVersion":"22.17.0","dependencies":{"piscina":"^4.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.0","@types/node":"^20","@biomejs/biome":"1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/bench-node_0.8.0_1752698437558_0.978816271847311","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"bench-node","version":"0.9.0","keywords":["benchmark","nodejs"],"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"license":"MIT","_id":"bench-node@0.9.0","maintainers":[{"name":"h4ad","email":"vinicius.cardoso7252@gmail.com"},{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"contributors":[{"name":"H4ad"}],"homepage":"https://github.com/RafaelGSS/bench-node#readme","bugs":{"url":"https://github.com/RafaelGSS/bench-node/issues"},"dist":{"shasum":"5e78af2d9baf5b2d8b2c1bf923764a5c0128615e","tarball":"https://registry.npmjs.org/bench-node/-/bench-node-0.9.0.tgz","fileCount":84,"integrity":"sha512-LhsoDduSRhkT3hPolUvTv82jWDAV+NLcfjXoc1+bAKHQxd4qj2FbF9WiB0ioX6pdztxatvn+G7OfYba1jFZwVw==","signatures":[{"sig":"MEUCIFE2Ga4RhXErtvSdYNr69xB6lj4uUaIYQiPP21wQ8g5hAiEAtowpmtSpoNKI/+D3m3Avfboz3tun2+nEyHcKkcFX1Rw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/bench-node@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":208583},"main":"lib/index.js","types":"index.d.ts","gitHead":"2ca0e8080c25c1c2f350a0d535cb65eb9b348196","scripts":{"lint":"biome lint .","test":"node --test --allow-natives-syntax","format":"biome format --write .","lint:ci":"biome ci .","lint:fix":"biome lint --write .","test:types":"tsd -f types/types.test-d.ts","lint:force-fix":"biome lint --write --unsafe ."},"_npmUser":{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"},"repository":{"url":"git+https://github.com/RafaelGSS/bench-node.git","type":"git"},"_npmVersion":"10.9.2","description":"<h1 align=\"center\">   <img     src=\"https://raw.githubusercontent.com/RafaelGSS/bench-node/refs/heads/main/assets/logo.svg\"     alt=\"Bench Node logo\"   />   Bench Node </h1>","directories":{},"_nodeVersion":"22.17.0","dependencies":{"piscina":"^4.8.0"},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.0","@types/node":"^20","@biomejs/biome":"1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/bench-node_0.9.0_1752790727629_0.007735816944859364","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"bench-node","version":"0.10.0","keywords":["benchmark","nodejs"],"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"license":"MIT","_id":"bench-node@0.10.0","maintainers":[{"name":"h4ad","email":"vinicius.cardoso7252@gmail.com"},{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"contributors":[{"name":"H4ad"}],"homepage":"https://github.com/RafaelGSS/bench-node#readme","bugs":{"url":"https://github.com/RafaelGSS/bench-node/issues"},"c8":{"reporter":"lcov"},"dist":{"shasum":"476cdcc0a996ca62c0642254be2ae26e79d2720d","tarball":"https://registry.npmjs.org/bench-node/-/bench-node-0.10.0.tgz","fileCount":86,"integrity":"sha512-sMUWIUdmgWpcY3ORugpktrtH0UVdoQE/SvBjkyZZu4bDJhQpHDbTGsvvCmFzV7O75SAk4nYK4L9mVfFQPx4QyA==","signatures":[{"sig":"MEUCIAL7BOicx2mPN286ELbnq25W2HWZNqimlRJo3zAlt2t3AiEAj+mGaiRAuaHWocgfVrGIo3dz+Ljp0KcfOgDVd4c3cDA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/bench-node@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":213477},"main":"lib/index.js","types":"index.d.ts","gitHead":"39d81dc4c9371adb347aefaceed89ccfa6209924","scripts":{"lint":"biome lint .","test":"npm run lint:ci && c8 node --test --allow-natives-syntax","format":"biome format --write .","lint:ci":"biome ci .","lint:fix":"biome lint --write .","test:types":"tsd -f types/types.test-d.ts","lint:force-fix":"biome lint --write --unsafe ."},"_npmUser":{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"},"repository":{"url":"git+https://github.com/RafaelGSS/bench-node.git","type":"git"},"_npmVersion":"10.9.2","description":"<h1 align=\"center\">   <img     src=\"https://raw.githubusercontent.com/RafaelGSS/bench-node/refs/heads/main/assets/logo.svg\"     alt=\"Bench Node logo\"   />   Bench Node </h1>","directories":{},"_nodeVersion":"22.17.1","dependencies":{"piscina":"^4.8.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsd":"^0.31.0","@types/node":"^20","@biomejs/biome":"1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/bench-node_0.10.0_1753994352497_0.07788307339909117","host":"s3://npm-registry-packages-npm-production"}},"0.11.0-beta.1":{"name":"bench-node","version":"0.11.0-beta.1","keywords":["benchmark","nodejs"],"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"license":"MIT","_id":"bench-node@0.11.0-beta.1","maintainers":[{"name":"h4ad","email":"vinicius.cardoso7252@gmail.com"},{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"contributors":[{"name":"H4ad"}],"homepage":"https://github.com/RafaelGSS/bench-node#readme","bugs":{"url":"https://github.com/RafaelGSS/bench-node/issues"},"c8":{"reporter":"lcov"},"dist":{"shasum":"13afc67968a1aec631a70177e093750ed431b0f3","tarball":"https://registry.npmjs.org/bench-node/-/bench-node-0.11.0-beta.1.tgz","fileCount":24,"integrity":"sha512-/0oUT6DJ3uu6d5kRhGw0m5IlpV8Rh3mrBmrg/eUnWjQQsRKzreYdkmz1vhflk1A7DHeSr9ZbUnEVYMyb4irZ+w==","signatures":[{"sig":"MEUCIQC2sX9VWGg/VCTrBWj36x1jNYtYQSz2Lz+zp9mRSfhX4wIgDNKbP6BzYL9/rluyFtruJ6SG+T4CCEf27EdkGdq05X8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87262},"main":"lib/index.js","types":"index.d.ts","gitHead":"b234ce76b8f03db0b4668eaddf531291819bd922","scripts":{"lint":"biome lint .","test":"npm run lint:ci && c8 node --test --allow-natives-syntax","format":"biome format --write .","lint:ci":"biome ci .","lint:fix":"biome lint --write .","test:types":"tsd -f types/types.test-d.ts","lint:force-fix":"biome lint --write --unsafe ."},"_npmUser":{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"},"repository":{"url":"git+https://github.com/RafaelGSS/bench-node.git","type":"git"},"_npmVersion":"11.4.2","description":"<h1 align=\"center\">   <img     src=\"https://raw.githubusercontent.com/RafaelGSS/bench-node/refs/heads/main/assets/logo.svg\"     alt=\"Bench Node logo\"   />   Bench Node </h1>","directories":{},"_nodeVersion":"24.4.0","dependencies":{"piscina":"^4.8.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"c8":"^10.1.3","tsd":"^0.31.0","mitata":"^1.0.34","benchmark":"^2.1.4","tinybench":"^4.1.0","@types/node":"^20","@biomejs/biome":"1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/bench-node_0.11.0-beta.1_1758568875485_0.3808247477000499","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"bench-node","version":"0.11.0","keywords":["benchmark","nodejs"],"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"license":"MIT","_id":"bench-node@0.11.0","maintainers":[{"name":"h4ad","email":"vinicius.cardoso7252@gmail.com"},{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"contributors":[{"name":"H4ad"}],"homepage":"https://github.com/RafaelGSS/bench-node#readme","bugs":{"url":"https://github.com/RafaelGSS/bench-node/issues"},"c8":{"reporter":"lcov"},"dist":{"shasum":"26121bef2ac71645a4dd5f0fdc22120a4f22c438","tarball":"https://registry.npmjs.org/bench-node/-/bench-node-0.11.0.tgz","fileCount":24,"integrity":"sha512-D4mSGtqJwHUjK5XU+Yv/Cm9Xn94tex+O0a3Vii9u88LjNAuzjANIuYEvE622njDkeZbzB0UIc2FcVQPVYglTOA==","signatures":[{"sig":"MEQCIGf+Ml4EgAv6vuoi05CoC0zH5N/fyoIri6FJWuUzEm/fAiA/VU/X2iIZr2Suy34VplXTo37vFxXXMgoGUz+YLilB/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/bench-node@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":87255},"main":"lib/index.js","types":"index.d.ts","gitHead":"4985b359524cb21824a1aa896d84892f5de4dec5","scripts":{"lint":"biome lint .","test":"npm run lint:ci && c8 node --test --allow-natives-syntax","format":"biome format --write .","lint:ci":"biome ci .","lint:fix":"biome lint --write .","test:types":"tsd -f types/types.test-d.ts","lint:force-fix":"biome lint --write --unsafe ."},"_npmUser":{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"},"repository":{"url":"git+https://github.com/RafaelGSS/bench-node.git","type":"git"},"_npmVersion":"10.9.3","description":"<h1 align=\"center\">   <img     src=\"https://raw.githubusercontent.com/RafaelGSS/bench-node/refs/heads/main/assets/logo.svg\"     alt=\"Bench Node logo\"   />   Bench Node </h1>","directories":{},"_nodeVersion":"22.19.0","dependencies":{"piscina":"^4.8.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsd":"^0.31.0","mitata":"^1.0.34","benchmark":"^2.1.4","tinybench":"^4.1.0","@types/node":"^20","@biomejs/biome":"1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/bench-node_0.11.0_1758569472504_0.04949364892871633","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"bench-node","version":"0.12.0","keywords":["benchmark","nodejs"],"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"license":"MIT","_id":"bench-node@0.12.0","maintainers":[{"name":"h4ad","email":"vinicius.cardoso7252@gmail.com"},{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"contributors":[{"name":"H4ad"}],"homepage":"https://github.com/RafaelGSS/bench-node#readme","bugs":{"url":"https://github.com/RafaelGSS/bench-node/issues"},"c8":{"reporter":"lcov"},"dist":{"shasum":"38a6554d50de7957f1e92d98da95584718cfe107","tarball":"https://registry.npmjs.org/bench-node/-/bench-node-0.12.0.tgz","fileCount":24,"integrity":"sha512-3ffKOqnW0qMo50TKNfyPaKtNTs3m0YoncDyXzyeWTctrNPajpgk3p7iW4rufgI7V2YhQMypFbyolNSxfgSmy1A==","signatures":[{"sig":"MEMCIEG+03MKB/6OzS3seXBD4Vl1GiJnTDgTLsM3/xSUcL8pAh82deOY9j5PN2FRy5IfZ9lRyqjm3viOBDo5PnyCur/+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/bench-node@0.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":89678},"main":"lib/index.js","types":"index.d.ts","gitHead":"75dc17e4d939861720bf9c9e5afdf0a4a52753f4","scripts":{"lint":"biome lint .","test":"npm run lint:ci && c8 node --test --allow-natives-syntax --expose-gc","format":"biome format --write .","lint:ci":"biome ci .","lint:fix":"biome lint --write .","test:types":"tsd -f types/types.test-d.ts","lint:force-fix":"biome lint --write --unsafe ."},"_npmUser":{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"},"repository":{"url":"git+https://github.com/RafaelGSS/bench-node.git","type":"git"},"_npmVersion":"10.9.4","description":"<h1 align=\"center\">   <img     src=\"https://raw.githubusercontent.com/RafaelGSS/bench-node/refs/heads/main/assets/logo.svg\"     alt=\"Bench Node logo\"   />   Bench Node </h1>","directories":{},"_nodeVersion":"22.21.1","dependencies":{"piscina":"^4.8.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsd":"^0.31.0","mitata":"^1.0.34","benchmark":"^2.1.4","tinybench":"^4.1.0","@types/node":"^20","@biomejs/biome":"1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/bench-node_0.12.0_1762204563960_0.8437949118776749","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"bench-node","version":"0.13.0","keywords":["benchmark","nodejs"],"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"license":"MIT","_id":"bench-node@0.13.0","maintainers":[{"name":"h4ad","email":"vinicius.cardoso7252@gmail.com"},{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"contributors":[{"name":"H4ad"}],"homepage":"https://github.com/RafaelGSS/bench-node#readme","bugs":{"url":"https://github.com/RafaelGSS/bench-node/issues"},"c8":{"reporter":"lcov"},"dist":{"shasum":"277c12c9d749d7ee48adbe67f35ad1d95f0865dd","tarball":"https://registry.npmjs.org/bench-node/-/bench-node-0.13.0.tgz","fileCount":24,"integrity":"sha512-cHBwRaNRlcuabvijdwMZtFO9tRf+sppEPsLSD1EtANSQPGLzqqHBHIs3w0yY/PuP9Zq9ZoL5cKiVk/St9z7/2w==","signatures":[{"sig":"MEYCIQDVCTyN89H6hM4h9hsa74f8bFWLwRU6P9xkBo8R2NMFawIhAMrO9/95jJr16SqZBU4qbzNy4ABc7HMgZPvJ0ITj9bVE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/bench-node@0.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":88588},"main":"lib/index.js","types":"index.d.ts","gitHead":"e188e50e0fb33bce689bc1d1084b726315300653","scripts":{"lint":"biome lint .","test":"c8 node --test --allow-natives-syntax --expose-gc && npm run lint:ci","format":"biome format --write .","lint:ci":"biome ci .","lint:fix":"biome lint --write .","test:types":"tsd -f types/types.test-d.ts","lint:force-fix":"biome lint --write --unsafe ."},"_npmUser":{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"},"repository":{"url":"git+https://github.com/RafaelGSS/bench-node.git","type":"git"},"_npmVersion":"10.9.4","description":"<h1 align=\"center\">   <img     src=\"https://raw.githubusercontent.com/RafaelGSS/bench-node/refs/heads/main/assets/logo.svg\"     alt=\"Bench Node logo\"   />   Bench Node </h1>","directories":{},"_nodeVersion":"22.21.1","dependencies":{"piscina":"^4.8.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsd":"^0.31.0","mitata":"^1.0.34","benchmark":"^2.1.4","tinybench":"^4.1.0","@types/node":"^20","@biomejs/biome":"1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/bench-node_0.13.0_1764268946688_0.3928478452262649","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"bench-node","version":"0.14.0","keywords":["benchmark","nodejs"],"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"license":"MIT","_id":"bench-node@0.14.0","maintainers":[{"name":"h4ad","email":"vinicius.cardoso7252@gmail.com"},{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"contributors":[{"name":"H4ad"}],"homepage":"https://github.com/RafaelGSS/bench-node#readme","bugs":{"url":"https://github.com/RafaelGSS/bench-node/issues"},"c8":{"reporter":"lcov"},"dist":{"shasum":"885333330613eb58e6dc29c510fa6b581f737822","tarball":"https://registry.npmjs.org/bench-node/-/bench-node-0.14.0.tgz","fileCount":26,"integrity":"sha512-Mx24xUFNlMkn1qaU1eTXK3xQ6YXVO+Lh9oy+JQ07VgDpJ72FQ2TV2KWsr6ObKHWKyN05X9kMN0nHLzVx+MZYWw==","signatures":[{"sig":"MEYCIQDyPZNMfTeU7sbqpEGhzjU7x1NVwBuT3AMrctzYC0JHuwIhALFeRrDbkcaA/h2LnhrmIZLZp2rYF+rSr0xQnlcpBcea","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":114680},"main":"lib/index.js","types":"index.d.ts","gitHead":"d678f9d501427191f15672fa22543389294d40f1","scripts":{"lint":"biome lint .","test":"c8 node --test --allow-natives-syntax --expose-gc && npm run lint:ci","format":"biome format --write .","lint:ci":"biome ci .","lint:fix":"biome lint --write .","test:types":"tsd -f types/types.test-d.ts","lint:force-fix":"biome lint --write --unsafe ."},"_npmUser":{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"},"repository":{"url":"git+https://github.com/RafaelGSS/bench-node.git","type":"git"},"_npmVersion":"11.6.1","description":"<h1 align=\"center\">   <img     src=\"https://raw.githubusercontent.com/RafaelGSS/bench-node/refs/heads/main/assets/logo.svg\"     alt=\"Bench Node logo\"   />   Bench Node </h1>","directories":{},"_nodeVersion":"24.10.0","dependencies":{"piscina":"^4.8.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsd":"^0.31.0","mitata":"^1.0.34","benchmark":"^2.1.4","tinybench":"^4.1.0","@types/node":"^20","@biomejs/biome":"1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/bench-node_0.14.0_1766020897207_0.8909263914265384","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"bench-node","version":"0.15.0","description":"<h1 align=\"center\">   <img     src=\"https://raw.githubusercontent.com/RafaelGSS/bench-node/refs/heads/main/assets/logo.svg\"     alt=\"Bench Node logo\"   />   Bench Node </h1>","main":"lib/index.js","types":"index.d.ts","scripts":{"test":"c8 node --test --allow-natives-syntax --expose-gc && npm run lint:ci","test:types":"tsd -f types/types.test-d.ts","lint":"biome lint .","lint:ci":"biome ci .","lint:fix":"biome lint --write .","lint:force-fix":"biome lint --write --unsafe .","format":"biome format --write ."},"repository":{"type":"git","url":"git+https://github.com/RafaelGSS/bench-node.git"},"keywords":["benchmark","nodejs"],"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"contributors":[{"name":"H4ad"}],"license":"MIT","bugs":{"url":"https://github.com/RafaelGSS/bench-node/issues"},"homepage":"https://github.com/RafaelGSS/bench-node#readme","dependencies":{"piscina":"^4.8.0"},"devDependencies":{"@biomejs/biome":"1.9.4","@types/node":"^20","benchmark":"^2.1.4","c8":"^10.1.3","mitata":"^1.0.34","tinybench":"^4.1.0","tsd":"^0.31.0"},"c8":{"reporter":"lcov"},"gitHead":"0765fdc5aa64e97699b746a3c4ddce8a1b6a6cf3","_id":"bench-node@0.15.0","_nodeVersion":"24.10.0","_npmVersion":"11.6.1","dist":{"integrity":"sha512-J+S6DEsRbiI3KL/i/yw156/Q8V8dvRiWU5pT/oegAu39A8Rmdq2YDRkh7REXD5UUfljQ181K2Xjv4cH9ZZMmNg==","shasum":"a73746959f2d3747bf21df536137ffb8440ddb48","tarball":"https://registry.npmjs.org/bench-node/-/bench-node-0.15.0.tgz","fileCount":26,"unpackedSize":115368,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAW7Zp/YlGzODo6YhtS7cWE3g5h70kXBNYp6E1w/GWtgAiBDbCiPcV2pnJEGbE1QXLIj2AcHOS5K2O4zlzKf4tiREQ=="}]},"_npmUser":{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"},"directories":{},"maintainers":[{"name":"h4ad","email":"vinicius.cardoso7252@gmail.com"},{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/bench-node_0.15.0_1778259443395_0.5549262288855679"},"_hasShrinkwrap":false}},"time":{"created":"2023-12-19T19:49:20.675Z","modified":"2026-05-08T16:57:23.636Z","0.0.1-beta.0":"2023-12-19T19:49:21.155Z","0.0.2-beta.0":"2024-09-11T19:41:58.266Z","0.0.3-beta.0":"2024-09-12T02:48:53.625Z","0.0.4-beta.0":"2024-09-13T21:17:46.509Z","0.0.4-beta.1":"2024-09-15T03:42:41.563Z","0.0.4-beta.2":"2024-09-27T12:58:40.901Z","0.0.4-beta.3":"2024-09-27T13:20:10.486Z","0.1.0":"2024-10-15T21:07:18.021Z","0.2.0":"2024-10-21T19:21:29.253Z","0.2.1":"2024-10-21T19:50:03.674Z","0.3.0":"2024-11-16T14:31:58.054Z","0.4.0":"2024-12-05T14:55:19.599Z","0.4.1":"2024-12-08T22:12:58.788Z","0.5.0":"2024-12-24T21:34:11.608Z","0.5.1":"2025-01-19T23:42:41.851Z","0.5.2":"2025-01-29T23:22:11.487Z","0.5.3":"2025-02-24T14:25:34.320Z","0.5.4":"2025-03-13T18:06:50.352Z","0.6.0":"2025-04-30T17:31:27.774Z","0.7.0":"2025-05-15T13:55:54.965Z","0.8.0":"2025-07-16T20:40:37.763Z","0.9.0":"2025-07-17T22:18:47.821Z","0.10.0":"2025-07-31T20:39:12.752Z","0.11.0-beta.1":"2025-09-22T19:21:15.672Z","0.11.0":"2025-09-22T19:31:12.709Z","0.12.0":"2025-11-03T21:16:04.150Z","0.13.0":"2025-11-27T18:42:26.869Z","0.14.0":"2025-12-18T01:21:37.372Z","0.15.0":"2026-05-08T16:57:23.533Z"},"bugs":{"url":"https://github.com/RafaelGSS/bench-node/issues"},"author":{"name":"RafaelGSS","email":"rafael.nunu@hotmail.com"},"license":"MIT","homepage":"https://github.com/RafaelGSS/bench-node#readme","keywords":["benchmark","nodejs"],"repository":{"type":"git","url":"git+https://github.com/RafaelGSS/bench-node.git"},"description":"<h1 align=\"center\">   <img     src=\"https://raw.githubusercontent.com/RafaelGSS/bench-node/refs/heads/main/assets/logo.svg\"     alt=\"Bench Node logo\"   />   Bench Node </h1>","contributors":[{"name":"H4ad"}],"maintainers":[{"name":"h4ad","email":"vinicius.cardoso7252@gmail.com"},{"name":"rafaelgss","email":"rafael.nunu@hotmail.com"}],"readme":"<h1 align=\"center\">\n  <img\n    src=\"https://raw.githubusercontent.com/RafaelGSS/bench-node/refs/heads/main/assets/logo.svg\"\n    alt=\"Bench Node logo\"\n  />\n  Bench Node\n</h1>\n\n<p align=\"center\">\n  <a href=\"#install\">Install</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;\n  <a href=\"#usage\">Usage</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;\n  <a href=\"#class-suite\">Suite</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;\n  <a href=\"#plugins\">Plugins</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;\n  <a href=\"#using-reporter\">Using Reporter</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;\n  <a href=\"#setup-and-teardown\">Setup and Teardown</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;\n  <a href=\"#benchmark-modes\">Benchmark Modes</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;\n  <a href=\"#writing-javascript-mistakes\">Writing JavaScript Mistakes</a>\n</p>\n\n[![npm package][npm-img]][npm-url]\n[![Build Status][build-img]][build-url]\n[![Downloads][downloads-img]][downloads-url]\n[![Issues][issues-img]][issues-url]\n\nThe `bench-node` module allows you to measure operations per second of Node.js code blocks.\n\n## Install\n\n```bash\n$ npm install bench-node\n```\n\n## Usage\n\n```cjs\nconst { Suite } = require('bench-node');\n\nconst suite = new Suite();\n\nsuite.add('Using delete property', () => {\n  const data = { x: 1, y: 2, z: 3 };\n  delete data.y;\n\n  data.x;\n  data.y;\n  data.z;\n});\n\nsuite.run()\n```\n\n```bash\n$ node --allow-natives-syntax my-benchmark.js\nUsing delete property x 3,326,913 ops/sec (11 runs sampled) v8-never-optimize=true min..max=(0ns ... 0ns) p75=0ns p99=0ns\n```\n\nThis module uses V8 deoptimization to help ensure that the code block is not optimized away, producing accurate benchmarks -- but not realistic.\nSee the [Writing JavaScript Microbenchmark Mistakes](#writing-javascript-mistakes) section for more details.\n\nThe [`bench-node-cli`](https://github.com/RafaelGSS/bench-node-cli) tool allows you to execute a `bench-node` benchmark\nfrom any location, eliminating the need to install the `bench-node` package locally.\nSimply use the following command to run your benchmark:\n\n```bash\nnpx bench-node-cli my-benchmark.js\n```\n\nSee the [examples folder](./examples/) for more common usage examples.\n\n## Table of Contents\n\n- [Install](#install)\n- [Usage](#usage)\n- [Table of Contents](#table-of-contents)\n- [Sponsors](#sponsors)\n- [Class: `Suite`](#class-suite)\n  - [`new Suite([options])`](#new-suiteoptions)\n  - [`suite.add(name[, options], fn)`](#suiteaddname-options-fn)\n  - [`suite.run()`](#suiterun)\n- [Dead Code Elimination Detection](#dead-code-elimination-detection)\n  - [How It Works](#how-it-works)\n  - [Configuration](#configuration)\n  - [When DCE Warnings Appear](#when-dce-warnings-appear)\n- [Plugins](#plugins)\n  - [Plugin Methods](#plugin-methods)\n  - [Example Plugin](#example-plugin)\n- [Using Reporter](#using-reporter)\n  - [`textReport` (Default)](#textreport-default)\n  - [`chartReport`](#chartreport)\n  - [`htmlReport`](#htmlreport)\n  - [`jsonReport`](#jsonreport)\n  - [CSV Reporter](#csv-reporter)\n  - [Pretty Reporter](#pretty-reporter)\n  - [Custom Reporter](#custom-reporter)\n- [Setup and Teardown](#setup-and-teardown)\n  - [Managed Benchmarks](#managed-benchmarks)\n  - [Worker Threads](#worker-threads)\n- [Benchmark Modes](#benchmark-modes)\n  - [Operations Mode](#operations-mode)\n  - [Time Mode](#time-mode)\n- [Baseline Comparisons](#baseline-comparisons)\n- [Statistical Significance Testing](#statistical-significance-testing-t-test)\n  - [Direct API Usage](#direct-api-usage)\n  - [Fixing Inconclusive Tests](#fixing-inconclusive-tests)\n- [Writing JavaScript Mistakes](#writing-javascript-mistakes)\n\n## Sponsors\n\nTest machines are generously sponsored by [NodeSource](https://nodesource.com/).  \n<img src=\"https://github.com/user-attachments/assets/c30ddaf6-145b-465e-a81f-c9942cb93175\" alt=\"NodeSource logo\" width=\"200\"/>\n\n## Class: `Suite`\n\n> Stability: 1.1 Active Development\n\nA `Suite` manages and executes benchmark functions. It provides two methods: `add()` and `run()`.\n\n### `new Suite([options])`\n\n* `options` {Object} Configuration options for the suite.\n  * `reporter` {Function} Callback function for reporting results. Receives two arguments:\n    * `results` {Object[]} Array of benchmark results:\n      * `name` {string} Benchmark name.\n      * `opsSec` {string} Operations per second.\n      * `iterations` {Number} Number of iterations.\n      * `histogram` {Histogram} Histogram instance.\n  * `ttest` {boolean} Enable Welch's t-test for statistical significance testing. Automatically sets `repeatSuite=30`. **Default:** `false`.\n  * `reporterOptions` {Object} Reporter-specific options.\n    * `printHeader` {boolean} Whether to print system information header. **Default:** `true`.\n    * `labelWidth` {number} Width for benchmark labels in output. **Default:** `45`.\n    * `alpha` {number} Significance level for t-test (e.g., 0.05 for 95% confidence). **Default:** `0.05`.\n  * `benchmarkMode` {string} Benchmark mode to use. Can be 'ops' or 'time'. **Default:** `'ops'`.\n    * `'ops'` - Measures operations per second (traditional benchmarking).\n    * `'time'` - Measures actual execution time for a single run.\n  * `useWorkers` {boolean} Whether to run benchmarks in worker threads. **Default:** `false`.\n  * `plugins` {Array} Array of plugin instances to use.\n  * `repeatSuite` {number} Number of times to repeat each benchmark. Automatically set to `30` when `ttest: true`. **Default:** `1`.\n  * `plugins` {Array} Array of plugin instances to use. **Default:** `[V8NeverOptimizePlugin]`.\n  * `minSamples` {number} Minimum number of samples per round for all benchmarks in the suite. Can be overridden per benchmark. **Default:** `10` samples.\n  * `detectDeadCodeElimination` {boolean} Enable dead code elimination detection. When enabled, default plugins are disabled to allow V8 optimizations. **Default:** `false`.\n  * `dceThreshold` {number} Threshold multiplier for DCE detection. Benchmarks faster than baseline × threshold will trigger warnings. **Default:** `10`.\n\nIf no `reporter` is provided, results are printed to the console.\n\n```js\nconst { Suite } = require('bench-node');\nconst suite = new Suite();\n```\n\nIf you don't want results to be printed to the console, `false` and `null` can be used\n\n```js\nconst { Suite } = require('bench-node');\nconst suite = new Suite({ reporter: false });\n```\n\n### `suite.add(name[, options], fn)`\n\n* `name` {string} The name of the benchmark, displayed when reporting results.\n* `options` {Object} Configuration options for the benchmark. Supported properties:\n  * `minTime` {number} The minimum duration of each sampling interval. **Default:** `0.05` seconds.\n  * `maxTime` {number} Maximum duration for the benchmark to run. **Default:** `0.5` seconds.\n  * `repeatSuite` {number} Number of times to repeat benchmark to run. **Default:** `1` times.\n  * `minSamples` {number} Number minimum of samples the each round. **Default:** `10` samples.\n  * `baseline` {boolean} Mark this benchmark as the baseline for comparison. Only one benchmark per suite can be baseline. **Default:** `false`.\n* `fn` {Function|AsyncFunction} The benchmark function. Can be synchronous or asynchronous. \n* Returns: {Suite}\n\nAdds a benchmark function to the suite.\n\n```bash\n$ node --allow-natives-syntax my-benchmark.js\nUsing delete property x 5,853,505 ops/sec (10 runs sampled) min..max=(169ns ... 171ns)\n```\n\n### `suite.run()`\n\n* Returns: `{Promise<Array<Object>>}` An array of benchmark results, each containing:\n  * `opsSec` {number} Operations per second (Only in 'ops' mode).\n  * `opsSecPerRun` {Array} Array of operations per second (useful when repeatSuite > 1).\n  * `totalTime` {number} Total execution time in seconds (Only in 'time' mode).\n  * `iterations` {number} Number of executions of `fn`.\n  * `histogram` {Histogram} Histogram of benchmark iterations.\n  * `name` {string} Benchmark name.\n  * `plugins` {Object} Object with plugin results if any plugins are active.\n\nRuns all added benchmarks and returns the results.\n\n## Dead Code Elimination Detection\n\n**bench-node** includes optional detection of dead code elimination (DCE) to help identify benchmarks that may be producing inaccurate results. When the JIT compiler optimizes away your benchmark code, it can run nearly as fast as an empty function, leading to misleading performance measurements.\n\n**Important:** DCE detection is **opt-in**. When enabled, the `V8NeverOptimizePlugin` is automatically disabled to allow V8 optimizations to occur naturally. This helps catch benchmarks that would be optimized away in real-world scenarios.\n\n### How It Works\n\nWhen enabled, bench-node measures a baseline (empty function) performance before running your benchmarks. After each benchmark completes, it compares the timing against this baseline. If a benchmark runs suspiciously fast (less than 10× slower than the baseline by default), a warning is emitted.\n\n### Example Warning Output\n\n```\n⚠️  Dead Code Elimination Warnings:\nThe following benchmarks may have been optimized away by the JIT compiler:\n\n  • array creation\n    Benchmark: 3.98ns/iter\n    Baseline:  0.77ns/iter  \n    Ratio:     5.18x of baseline\n    Suggestion: Ensure the result is used or assign to a variable\n\nℹ️  These benchmarks are running nearly as fast as an empty function,\n   which suggests the JIT may have eliminated the actual work.\n```\n\n### Configuration\n\n```js\nconst { Suite, V8NeverOptimizePlugin } = require('bench-node');\n\n// Enable DCE detection (disables V8NeverOptimizePlugin automatically)\nconst suite = new Suite({\n  detectDeadCodeElimination: true\n});\n\n// Enable DCE detection with custom threshold (default is 10x)\nconst strictSuite = new Suite({\n  detectDeadCodeElimination: true,\n  dceThreshold: 20 // Only warn if < 20x slower than baseline\n});\n\n// Use both DCE detection AND prevent optimization\n// (helpful for educational purposes to see warnings even when using %NeverOptimizeFunction)\nconst educationalSuite = new Suite({\n  plugins: [new V8NeverOptimizePlugin()],\n  detectDeadCodeElimination: true\n});\n```\n\n### When DCE Warnings Appear\n\nCommon scenarios that trigger warnings:\n\n```js\n// ❌ Result not used - will be optimized away\nsuite.add('computation', () => {\n  const result = Math.sqrt(144);\n  // result is never used\n});\n\n// ✅ Result is used - less likely to be optimized\nsuite.add('computation', () => {\n  const result = Math.sqrt(144);\n  if (result !== 12) throw new Error('Unexpected');\n});\n```\n\n**Note:** DCE detection only works in `'ops'` benchmark mode and when not using worker threads. It is automatically disabled for `'time'` mode and worker-based benchmarks.\n\nSee [examples/dce-detection/](./examples/dce-detection/) for more examples.\n\n## Plugins\n\nPlugins extend the functionality of the benchmark module. \n\nSee [Plugins](./doc/Plugins.md) for details.\n\n### Plugin Methods\n\n- **`isSupported()`**: Checks if the plugin can run in the current environment.\n- **`beforeClockTemplate(varNames)`**: Injects code before the benchmark starts. Returns an array with:\n  * `Code` {string} JavaScript code to execute.\n  * `Wrapper` {string} (optional) Function to wrap the benchmark function.\n- **`afterClockTemplate(varNames)`**: Injects code after the benchmark finishes. Returns an array with:\n  * `Code` {string} JavaScript code to execute.\n- **`onCompleteBenchmark(result, bench)`**: Called when the benchmark completes, allowing plugins to process results.\n- **`toString()`**: Returns a string identifier for the plugin.\n- **`getReport(benchmarkName)`**: Returns a string to be displayed in the benchmark result line.\n- **`getResult(benchmarkName)`**: Returns the data that can be used by the reporter.\n- **`reset()`**: Resets the plugin state, to avoid carrying over data between benchmarks.\n\n### Example Plugin\n\n```js\nclass V8OptimizeOnNextCallPlugin {\n  isSupported() {\n    try {\n      new Function(`%OptimizeFunctionOnNextCall(() => {})`)();\n      return true;\n    } catch (e) {\n      return false;\n    }\n  }\n\n  beforeClockTemplate({ awaitOrEmpty, bench }) {\n    let code = '';\n    code += `%OptimizeFunctionOnNextCall(${bench}.fn);\\n`;\n    code += `${awaitOrEmpty}${bench}.fn();\\n`;\n    code += `${awaitOrEmpty}${bench}.fn();\\n`;\n    return [code];\n  }\n\n  toString() {\n    return 'V8OptimizeOnNextCallPlugin';\n  }\n}\n```\n\n## Using Reporter\n\nThis module exports two reporters that control how benchmark results are displayed:\na detailed `textReport` for statistical analysis, and a visual `chartReport` that\ndisplays a bar graph in the terminal.\n\n### `textReport` (Default)\n\nThe `textReport` is the default reporter, which provides simple statistical information\nabout each benchmark result. It includes the number of operations per second, the number\nof runs sampled, min...max, and enabled plugins.\n\n**Example Output**:\n\n```\nsingle with matcher                           x 710,248 ops/sec (11 runs sampled) v8-never-optimize=true min..max=(1.40us...1.42us)\nmultiple replaces                             x 604,713 ops/sec (11 runs sampled) v8-never-optimize=true min..max=(1.64us...1.70us)\n```\n\nHere’s how you can explicitly pass it as a reporter:\n\n```cjs\nconst { Suite, textReport } = require('bench-node');\n\nconst suite = new Suite({\n  reporter: textReport, // Optional, since this is the default\n});\n```\n\n### `chartReport`\n\nThe `chartReport` reporter provides a graphical representation of benchmark\nresults in the form of a bar chart, making it easier to visualize the relative\nperformance of each benchmark. It scales the bars based on the highest operations\nper second (ops/sec) value, and displays the results incrementally as they are collected.\n\nExample output:\n\n```\nNode.js version: v23.6.1\nPlatform: darwin arm64\nCPU Cores: 8 vCPUs | 16.0GB Mem\n\nsingle with matcher                           | ██████████████████████████████ | 709,321 ops/sec | 10 samples\nmultiple replaces                             | ██████████████████████████---- | 606,401 ops/sec | 11 samples\n```\n\nUsage:\n\n```cjs\nconst { Suite, chartReport } = require('bench-node');\n\nconst suite = new Suite({\n  reporter: chartReport,\n  // Optionally control header display\n  reporterOptions: {\n    printHeader: true // Set to false to hide system info header\n  }\n});\n```\n\nThe `reporterOptions.printHeader` setting controls whether the system information (Node.js version, platform, and CPU cores) appears at the top of the output. This is useful when running multiple suites in sequence and you want to avoid duplicate headers.\n\n### `htmlReport`\n\nThe `htmlReport` generates an interactive HTML visualization of benchmark results.\nIt transforms benchmark data into a visual format, such as speed circle animations,\nmaking it easier to interpret and share performance insights.\n\nExample output:\n\nhttps://github.com/user-attachments/assets/b2b98175-6648-4af4-8319-63f3ebbc729e\n\nUsage:\n\n```cjs\nconst { Suite, htmlReport } = require('bench-node');\n\nconst suite = new Suite({\n  reporter: htmlReport,\n});\n```\n\n### `jsonReport`\n\nThe `jsonReport` plugin provides benchmark results in **JSON format**.  \nIt includes key performance metrics—such as `opsSec`, `runsSampled`, `min`\nand `max` times, and any reporter data from your **plugins**—so you can easily\nstore, parse, or share the information.\n\nExample output:\n\n```json\n[\n  {\n    \"name\": \"single with matcher\",\n    \"opsSec\": 180000,\n    \"runsSampled\": 50,\n    \"min\": \"13.20μs\",\n    \"max\": \"82.57μs\",\n    \"plugins\": []\n  },\n  {\n    \"name\": \"Multiple replaces\",\n    \"opsSec\": 170000,\n    \"runsSampled\": 50,\n    \"min\": \"15.31μs\",\n    \"max\": \"77.49μs\",\n    \"plugins\": []\n  }\n]\n```\n\n**Usage:**\n\n```cjs\nconst { Suite, jsonReport } = require('bench-node');\n\nconst suite = new Suite({\n  reporter: jsonReport,\n});\n```\n\n### CSV Reporter\n\nThe `csvReport` plugin generates benchmark results in CSV format.\nIt includes columns for key performance metrics like `ops/sec`, `samples`, `min` and `max` times,\nas well as any reporter data provided by your plugins.\n\nExample output:\n\n```csv\nname,ops/sec,samples,plugins,min,max\nUsing delete property,\"7,732,517\",10,v8-never-optimize=true,127.91ns,129.95ns\nUsing delete property (proto: null),\"24,636,631\",10,v8-never-optimize=true,39.57ns,40.91ns\nUsing delete property (cached proto: null),\"7,497,893\",11,v8-never-optimize=true,132.25ns,134.89ns\nUsing undefined assignment,\"132,093,600\",11,v8-never-optimize=true,7.53ns,7.64ns\nUsing undefined assignment (proto: null),\"28,231,374\",9,v8-never-optimize=true,35.27ns,35.42ns\nUsing undefined property (cached proto: null),\"60,843,193\",10,v8-never-optimize=true,16.24ns,16.65ns\n[Managed] Using undefined property (cached proto: null),\"35,394,060\",10,v8-never-optimize=true,27.90ns,28.54ns\n```\n\n**Usage:**\n\n```cjs\nconst { Suite, csvReport } = require('bench-node');\n\nconst suite = new Suite({\n  reporter: csvReport,\n});\n```\n\n### Pretty Reporter\n\nThe `prettyReport` provides a beautiful, hierarchical view of your benchmark results.\n\n**Usage:**\n\n```javascript\nconst { Suite } = require('bench-node');\n\n// You can either pass the reporter function directly...\nconst suiteWithReporter = new Suite({\n  reporter: prettyReport,\n});\n\n// ...or use the `pretty` option for convenience.\nconst suiteWithPrettyOption = new Suite({\n  pretty: true,\n});\n\nsuite\n  .add('my-group/my-benchmark', () => {\n    //...\n  })\n  .add('my-group/my-benchmark-2', () => {\n    //...\n  })\n  .add('second-group/baseline', () => {\n    //...\n  })\n  .run();\n```\n\n**Sample Output:**\n\n```\nSystem Information:\n  Node.js: v22.15.0\n  OS: darwin 24.5.0\n  CPU: Apple M2\n\nBenchmark results (3 total):\nPlugins enabled: V8NeverOptimizePlugin\n├─ my-group\n│ ├─ my-benchmark                                      1,461,380 ops/sec (10 runs sampled) min..max=(682.30ns...685.79ns)\n│ └─ my-benchmark-2                                    2,270,973 ops/sec (10 runs sampled) min..max=(437.22ns...444.12ns)\n└─ second-group\n  └─ baseline                                          637,787 ops/sec (11 runs sampled) min..max=(1.54us...1.59us)\n```\n\n### Custom Reporter\n\nCustomize data reporting by providing a `reporter` function when creating the `Suite`:\n\n```js\nconst { Suite } = require('bench-node');\n\nfunction reporter(results) {\n  for (const result of results) {\n    console.log(`Benchmark: ${result.name}`);\n    console.log(`Operations per second: ${result.opsSec}`);\n    console.log(`Iterations: ${result.iterations}`);\n    console.log(`Histogram: ${result.histogram}`);\n  }\n}\n\nconst suite = new Suite({ reporter });\n\nsuite.add('Using delete to remove property from object', () => {\n  const data = { x: 1, y: 2, z: 3 };\n  delete data.y;\n\n  data.x;\n  data.y;\n  data.z;\n});\n\nsuite.run();\n```\n\n```bash\n$ node --allow-natives-syntax my-benchmark.js\nBenchmark: Using delete to remove property from object - 6,032,212 ops/sec\n```\n\n## Setup and Teardown\n\nControl the benchmark function's setup and teardown using the timer argument:\n\n```js\nconst { Suite } = require('bench-node');\nconst { readFileSync, writeFileSync, rmSync } = require('node:fs');\n\nconst suite = new Suite();\n\nsuite.add('readFileSync', (timer) => {\n  const randomFile = Date.now();\n  const filePath = `./${randomFile}.txt`;\n  writeFileSync(filePath, Math.random().toString());\n\n  timer.start();\n  readFileSync(filePath, 'utf8');\n  timer.end();\n\n  rmSync(filePath);\n}).run();\n```\n\nFor advanced setups, use the timer argument to start and end timing explicitly:\n\n```js\nconst { Suite } = require('bench-node');\nconst { readFileSync, writeFileSync, rmSync } = require('node:fs');\n\nconst suite = new Suite();\n\nsuite.add('readFileSync', (timer) => {\n  const randomFile = Date.now();\n  const filePath = `./${randomFile}.txt`;\n  writeFileSync(filePath, Math.random().toString());\n\n  timer.start();\n  for (let i = 0; i < timer.count; i++) {\n    readFileSync(filePath, 'utf8');\n  }\n  timer.end(timer.count);\n\n  rmSync(filePath);\n});\n\nsuite.run();\n```\n\n> [!WARNING]\n> When using the `timer`, the setup will also be deoptimized.\n> As a result, if you compare this approach with one that uses functions outside\n> the benchmark function, the results may not match.\n> See: [Deleting Properties Example](./examples/deleting-properties/node.js).\n\nEnsure you call `.start()` and `.end()` methods when using the timer argument, or an `ERR_BENCHMARK_MISSING_OPERATION` error will be thrown.\n\n### Managed Benchmarks\n\nIn regular benchmarks (when `timer` is not used), you run the benchmarked function in a loop,\nand the timing is managed implicitly.\nThis means each iteration of the benchmarked function is measured directly.\nThe downside is that optimizations like inlining or caching might affect the timing, especially for fast operations.\n\nExample:\n\n```cjs\nsuite.add('Using includes', () => {\n  const text = 'text/html,...';\n  const r = text.includes('application/json');\n});\n```\n\nHere, `DoNotOptimize` is called inside the generated loop for regular benchmarks\n(assuming `V8NeverOptimizePlugin` is being used), and the benchmark function is\nalso marked with `%NeverOptimizeFunction`.\nTogether, these prevent V8 from optimizing the benchmark function and from\ntreating the returned value as irrelevant.\n\nManaged benchmarks explicitly handle timing through `start()` and `end()` calls around the benchmarked code.\nThis encapsulates the entire set of iterations in one timed block,\nwhich can result in tighter measurement with less overhead.\nHowever, it can lead to over-optimistic results, especially if the timer’s start and stop calls are placed outside of the loop,\nallowing V8 to over-optimize the entire block.\n\nExample:\n\n```cjs\nsuite.add('[Managed] Using includes', (timer) => {\n  timer.start();\n  for (let i = 0; i < timer.count; i++) {\n    const text = 'text/html,...';\n    const r = text.includes('application/json');\n    assert.ok(r);  // Ensure the result is used so it doesn't get V8 optimized away\n  }\n  timer.end(timer.count);\n});\n```\n\nIn this case, `DoNotOptimize` is applied to the benchmark function's return value,\noutside the user-managed loop. It does not consume the local `r` value from each\niteration. That's why `assert.ok(r)` has been used: it makes the per-iteration\nresult observable inside the timed block.\n\n> [!NOTE]\n> V8 assumptions can change any time soon. Therefore, it's crucial to investigate\n> results between versions of V8/Node.js.\n\n### Worker Threads\n\n> Stability: 1.0 (Experimental)\n\n`bench-node` provides experimental support for **Worker Threads**. When you set `useWorkers: true`,\nthe library runs each benchmark in a separate worker thread, ensuring that one benchmark\ndoes not affect another. Usage is straightforward:\n\n```cjs\nconst suite = new Suite({\n  useWorkers: true,\n});\n```\n\n## Benchmark Modes\n\n`bench-node` supports multiple benchmarking modes to measure code performance in different ways.\n\n### Operations Mode\n\nOperations mode (default) measures how many operations can be performed in a given timeframe. \nThis is the traditional benchmarking approach that reports results in operations per second (ops/sec).\n\nThis mode is best for:\n- Comparing relative performance between different implementations\n- Measuring throughput of small, fast operations\n- Traditional microbenchmarking\n\nExample output:\n```\nString concatenation x 12,345,678 ops/sec (11 runs sampled) v8-never-optimize=true min..max=(81ns...85ns)\n```\n\n### Time Mode\n\nTime mode measures the actual time taken to execute a function exactly once. \nThis mode is useful when you want to measure the real execution time for operations that have a known, fixed duration.\n\nThis mode is best for:\n- Costly operations where multiple instructions are executed in a single run \n- Benchmarking operations with predictable timing\n- Verifying performance guarantees for time-sensitive functions\n\nTo use time mode, set the `benchmarkMode` option to `'time'` when creating a Suite:\n\n```js\nconst { Suite } = require('bench-node');\n\nconst timeSuite = new Suite({\n    benchmarkMode: 'time' // Enable time mode\n});\n\n// Create a function that takes a predictable amount of time\nconst delay = (ms) => new Promise(resolve => setTimeout(resolve, ms));\n\ntimeSuite.add('Async Delay 100ms', async () => {\n    await delay(100);\n});\n\ntimeSuite.add('Sync Busy Wait 50ms', () => {\n    const start = Date.now();\n    while (Date.now() - start < 50);\n});\n\n// Optional: Run the benchmark multiple times with repeatSuite\ntimeSuite.add('Quick Operation with 5 repeats', { repeatSuite: 5 }, () => {\n    // This will run exactly once per repeat (5 times total)\n    // and report the average time\n    let x = 1 + 1;\n});\n\n(async () => {\n    await timeSuite.run();\n})();\n```\n\nIn time mode, results include `totalTime` (in seconds) instead of `opsSec`.\n\nExample output:\n```\nAsync Delay 100ms x 0.1003s (1 sample) v8-never-optimize=true\nSync Busy Wait 50ms x 0.0502s (1 sample) v8-never-optimize=true\nQuick Operation with 5 repeats x 0.0000s (5 samples) v8-never-optimize=true\n```\n\nSee [examples/time-mode.js](./examples/time-mode.js) for a complete example.\n\n## Baseline Comparisons\n\nYou can mark one benchmark as a baseline to compare all other benchmarks against it:\n\n```js\nconst { Suite } = require('bench-node');\n\nconst suite = new Suite();\n\nsuite\n  .add('baseline', { baseline: true }, () => {\n    // baseline implementation\n    const arr = [1, 2, 3];\n    arr.includes(2);\n  })\n  .add('alternative', () => {\n    // alternative implementation\n    const arr = [1, 2, 3];\n    arr.indexOf(2) !== -1;\n  });\n\nsuite.run();\n```\n\nExample output with baseline:\n```\nbaseline     x 52,832,865 ops/sec (10 runs sampled) min..max=(18.50ns...19.22ns)\nalternative  x 53,550,219 ops/sec (11 runs sampled) min..max=(18.26ns...18.89ns)\n\nSummary (vs. baseline):\n  baseline     (baseline)\n  alternative  (1.01x faster)\n```\n\n## Statistical Significance Testing (T-Test)\n\n> Stability: 1.0 (Experimental)\n\nWhen comparing benchmarks, especially on machines with high variance (cloud VMs, shared environments),\nraw ops/sec differences may not be meaningful. `bench-node` provides **Welch's t-test** to determine\nif performance differences are statistically significant.\n\nWelch's t-test is preferred over Student's t-test because it doesn't assume equal variances between\nthe two samples, which is common in benchmark scenarios.\n\n### Enabling T-Test Mode\n\nEnable t-test mode with `ttest: true`. This automatically sets `repeatSuite=30` to collect enough\nindependent samples for reliable statistical analysis (per the Central Limit Theorem):\n\n```js\nconst { Suite } = require('bench-node');\n\nconst suite = new Suite({\n  ttest: true,  // Enables t-test and auto-sets repeatSuite=30\n});\n\nsuite\n  .add('baseline', { baseline: true }, () => {\n    let sum = 0;\n    for (let i = 0; i < 100; i++) sum += i;\n  })\n  .add('optimized', () => {\n    let sum = (99 * 100) / 2; // Gauss formula\n  });\n\nsuite.run();\n```\n\nExample output:\n```\nT-Test Mode: Enabled (repeatSuite=30)\n\nbaseline   x 1,234,567 ops/sec (300 runs sampled) min..max=(810.05ns...812.45ns)\noptimized  x 9,876,543 ops/sec (305 runs sampled) min..max=(101.23ns...102.87ns)\n\nSummary (vs. baseline):\n  baseline   (baseline)\n  optimized  (8.00x faster) ***\n\n  Significance: * p<0.05, ** p<0.01, *** p<0.001\n```\n\nThe asterisks indicate significance level:\n- `***` = p < 0.001 (0.1% risk of false positive)\n- `**` = p < 0.01 (1% risk of false positive)\n- `*` = p < 0.05 (5% risk of false positive)\n- (no stars) = not statistically significant\n\nThis helps identify when a benchmark shows a difference due to random variance vs. a real performance improvement.\n\n**How it works**: With `ttest: true`, each benchmark runs 30 times independently (via `repeatSuite=30`). The t-test compares the 30 ops/sec values from the baseline against the 30 ops/sec values from each test benchmark. This accounts for run-to-run variance within that benchmark session.\n\n**Note**: Running the entire benchmark suite multiple times may still show variance in absolute numbers due to system-level factors (CPU frequency scaling, thermal throttling, background processes). The t-test helps determine if differences are statistically significant within each benchmark session, but results can vary between separate benchmark runs due to changing system conditions.\n\nSee also: [Fixing Inconclusive Tests](doc/Inconclusive.md).\n\n### Direct API Usage\n\nYou can also use the t-test utilities directly for custom analysis:\n\n```js\nconst { welchTTest, compareBenchmarks } = require('bench-node');\n\n// Raw sample data from two benchmarks (e.g., timing samples in nanoseconds)\nconst baseline = [100, 102, 99, 101, 100, 98, 103, 99, 100, 101];\nconst optimized = [50, 51, 49, 52, 50, 48, 51, 49, 50, 51];\n\n// High-level comparison\nconst result = compareBenchmarks(optimized, baseline, 0.05);\nconsole.log(result);\n// {\n//   significant: true,\n//   pValue: 0.00001,\n//   confidence: '99.99%',\n//   stars: '***',\n//   difference: 'faster',\n//   tStatistic: 45.2,\n//   degreesOfFreedom: 17.8\n// }\n\n// Low-level Welch's t-test\nconst ttest = welchTTest(optimized, baseline);\nconsole.log(ttest);\n// {\n//   tStatistic: 45.2,\n//   degreesOfFreedom: 17.8,\n//   pValue: 0.00001,\n//   significant: true,\n//   mean1: 50.1,\n//   mean2: 100.3,\n//   variance1: 1.43,\n//   variance2: 2.23\n// }\n```\n\n#### Interpreting Results\n\n- **`significant: true`** - The performance difference is statistically significant at the given alpha level\n- **`pValue`** - Probability that the observed difference occurred by chance (lower = more confident)\n- **`confidence`** - Confidence level (e.g., \"99.95%\" means 99.95% confident the difference is real)\n- **`stars`** - Visual indicator of significance: `'***'` (p<0.001), `'**'` (p<0.01), `'*'` (p<0.05), or `''` (not significant)\n- **`difference`** - Whether the first sample is `'faster'`, `'slower'`, or `'same'` as the second\n\nA common threshold is `alpha = 0.05` (95% confidence). If `pValue < alpha`, the difference is significant.\n\n## Writing JavaScript Mistakes\n\nWhen working on JavaScript micro-benchmarks, it’s easy to forget that modern engines use\nmultiple tiers of Just-In-Time (JIT) compilation and sometimes even entirely different\noptimizations. The results you get from a simple timing loop often aren’t representative\nof how your code will behave under real-world conditions, especially once the browser or\nruntime has adjusted for frequent function calls. Caching, tail call optimizations,\nand hidden class transformations can all distort your measurements, leading to overblown\nclaims about performance improvements that might never materialize in production.\n\nThat’s why **bench-node** was created—to provide a stable and consistent way to compare\nsmall snippets of code. By default, it tells V8 to never optimize the benchmark\nfunction with `%NeverOptimizeFunction(bench.fn)` and consumes the returned value\nwith a non-optimized `DoNotOptimize` helper so the JIT compiler doesn’t remove\ndead code. However, even this approach can’t fully replicate real-world scenarios\nin which V8 optimizations and unpredictable workloads impact performance. Think of\nbench-node as a helpful tool for quick comparisons rather than a guarantee of what you’ll\nsee in production.\n\n\n[build-img]:https://github.com/RafaelGSS/bench-node/actions/workflows/release.yml/badge.svg\n\n[build-url]:https://github.com/RafaelGSS/bench-node/actions/workflows/release.yml\n\n[downloads-img]:https://img.shields.io/npm/dt/bench-node\n\n[downloads-url]:https://www.npmtrends.com/bench-node\n\n[npm-img]:https://img.shields.io/npm/v/bench-node\n\n[npm-url]:https://www.npmjs.com/package/bench-node\n\n[issues-img]:https://img.shields.io/github/issues/RafaelGSS/bench-node\n\n[issues-url]:https://github.com/RafaelGSS/bench-node/issues\n","readmeFilename":"README.md"}