{"_id":"lap","_rev":"42-2aff09edea87f72b5e76a52cb0bb3edf","name":"lap","description":"Performance testing library","dist-tags":{"latest":"0.3.1"},"versions":{"0.1.0":{"name":"lap","description":"Performance testing library","version":"0.1.0","homepage":"https://github.com/ryanve/lap","license":"MIT","author":{"name":"Ryan Van Etten"},"keywords":["performance","speed","time","server","browser"],"main":"./lap.js","repository":{"type":"git","url":"https://github.com/ryanve/lap.git"},"devDependencies":{"aok":"~1.8.0","grunt":"~0.4.2","grunt-contrib-uglify":"~0.3.0","grunt-contrib-concat":"~0.3.0","grunt-contrib-jshint":"~0.8.0"},"bugs":{"url":"https://github.com/ryanve/lap/issues"},"_id":"lap@0.1.0","dist":{"shasum":"4fa02b1c0f01451c392192d65332a6a74c71dae6","tarball":"https://registry.npmjs.org/lap/-/lap-0.1.0.tgz","integrity":"sha512-DtZbp3518154bTuBV8Ne5dbL1pTRAdvSXG5XnYAJocZ8JQPSWsR45AuWQ12sEq/VQ5iMAjDS0y7uxOBx7TBFnA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICnUS+3o3kDkKcv0HDPfYGQH+aqs3IRu6NPnR3dVvk6+AiEAx65QDbB6z/nlleOkkax9kmPov9OZp/5h9yYRbIa+I2M="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"ryanve","email":"ryanve@gmail.com"},"maintainers":[{"name":"ryanve","email":"ryanve@gmail.com"}]},"0.2.0":{"name":"lap","description":"Performance testing library","version":"0.2.0","homepage":"https://github.com/ryanve/lap","license":"MIT","author":{"name":"Ryan Van Etten"},"keywords":["performance","speed","time","timestamp","server","browser"],"main":"./lap.js","repository":{"type":"git","url":"https://github.com/ryanve/lap.git"},"devDependencies":{"aok":"~1.8.1","grunt":"~0.4.2","grunt-contrib-uglify":"~0.3.0","grunt-contrib-concat":"~0.3.0","grunt-contrib-jshint":"~0.8.0"},"bugs":{"url":"https://github.com/ryanve/lap/issues"},"_id":"lap@0.2.0","dist":{"shasum":"18956e214f1002e142eda70d60132a0b15c79c37","tarball":"https://registry.npmjs.org/lap/-/lap-0.2.0.tgz","integrity":"sha512-i+BOGkHi9WJcol5bL6n0WMFK2ld1ZUxyvcelW9pS/j6h5jwF3d3MkIqOSV1SWy7qyjmT0+nQDUWfhRfiffCmLg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHH1Gl4jLI3MWAcGYPx7slz//8lejnxnoqo69T3L53jYAiBQ2OMCLVIon6BgcjimVpW+YSDCeJKg9E112TXYirzIAw=="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"ryanve","email":"ryanve@gmail.com"},"maintainers":[{"name":"ryanve","email":"ryanve@gmail.com"}]},"0.2.1":{"name":"lap","description":"Performance testing library","version":"0.2.1","homepage":"https://github.com/ryanve/lap","license":"MIT","author":{"name":"Ryan Van Etten"},"keywords":["performance","speed","time","timestamp","server","browser"],"main":"./lap.js","repository":{"type":"git","url":"https://github.com/ryanve/lap.git"},"devDependencies":{"aok":"~1.8.1","grunt":"~0.4.2","grunt-contrib-uglify":"~0.3.0","grunt-contrib-concat":"~0.3.0","grunt-contrib-jshint":"~0.8.0"},"bugs":{"url":"https://github.com/ryanve/lap/issues"},"_id":"lap@0.2.1","dist":{"shasum":"fbe6ededbc7ca18cc7775dc3b4f19a2bd983914b","tarball":"https://registry.npmjs.org/lap/-/lap-0.2.1.tgz","integrity":"sha512-1dW+zttsFaElVfor4r8r3GarfWJq2a1HNWA7Q1icdeJEvL2WMyy9xVYDL3iV3yrQU8XuCENROluZDNTjfW28Mg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBj5mJuDFCwF8DmBBOTMIW/++O4jwAgsURZRSMFRfrJcAiEA+NkFQ3NIPQJZuN9XVvMWbWIUtzK7xR4/dUIq40TvZbE="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"ryanve","email":"ryanve@gmail.com"},"maintainers":[{"name":"ryanve","email":"ryanve@gmail.com"}]},"0.2.2":{"name":"lap","description":"Performance testing library","version":"0.2.2","homepage":"https://github.com/ryanve/lap","license":"MIT","author":{"name":"Ryan Van Etten"},"keywords":["performance","speed","time","timestamp","server","browser"],"main":"./lap.js","repository":{"type":"git","url":"https://github.com/ryanve/lap.git"},"devDependencies":{"aok":"~1.8.1","grunt":"~0.4.2","grunt-contrib-uglify":"~0.3.0","grunt-contrib-concat":"~0.3.0","grunt-contrib-jshint":"~0.8.0"},"bugs":{"url":"https://github.com/ryanve/lap/issues"},"_id":"lap@0.2.2","dist":{"shasum":"ea03e9dcb67bc001713e8b2c31d4da12168ec6ec","tarball":"https://registry.npmjs.org/lap/-/lap-0.2.2.tgz","integrity":"sha512-v7Pa6ZUmEWegHDn5Rj9x55+K9Isk1gF5XqlvXW0SRXhh4V9y3PttLfBxG+x09ecCrd2rsAJVErEm4fCeRb5DXA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDz8GTca0Nwn7X+uMe7jjce4cJRQn6b4c4dTPSWcZoy8AiBLEYJCb3TTVzheSCn2l9fh6vXTNifMQ73wQT12ANto8A=="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"ryanve","email":"ryanve@gmail.com"},"maintainers":[{"name":"ryanve","email":"ryanve@gmail.com"}]},"0.2.3":{"name":"lap","description":"Performance testing library","version":"0.2.3","homepage":"https://github.com/ryanve/lap","license":"MIT","author":{"name":"Ryan Van Etten"},"keywords":["performance","speed","time","timestamp","server","browser"],"main":"./lap.js","repository":{"type":"git","url":"https://github.com/ryanve/lap.git"},"devDependencies":{"aok":"~1.8.1","grunt":"~0.4.2","grunt-contrib-uglify":"~0.3.0","grunt-contrib-concat":"~0.3.0","grunt-contrib-jshint":"~0.8.0"},"bugs":{"url":"https://github.com/ryanve/lap/issues"},"_id":"lap@0.2.3","dist":{"shasum":"cf6be52f376639bbfb00984a76d913b5613f0f61","tarball":"https://registry.npmjs.org/lap/-/lap-0.2.3.tgz","integrity":"sha512-iY5rKYFnM6LnoKt9zkcjVZpknQwbQwb0y9YKj1p9uMlFMdbSOvq8F38nOPsGQVea+gMJ3/7VLZTWsp6ptYe7/Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICgCpKy9rJZ3EvNHDv7tD7BfMyfh4rOMnbNlGFyhp+drAiEA+LpMOMMZOqKxv1nozk/ggKCRr1oK90z/XwXyxfbWOUk="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"ryanve","email":"ryanve@gmail.com"},"maintainers":[{"name":"ryanve","email":"ryanve@gmail.com"}]},"0.2.4":{"name":"lap","description":"Performance testing library","version":"0.2.4","homepage":"https://github.com/ryanve/lap","license":"MIT","author":{"name":"Ryan Van Etten"},"keywords":["performance","speed","time","timestamp","server","browser"],"main":"./lap.js","repository":{"type":"git","url":"https://github.com/ryanve/lap.git"},"devDependencies":{"aok":"~1.8.1","grunt":"~0.4.2","grunt-contrib-uglify":"~0.3.0","grunt-contrib-concat":"~0.3.0","grunt-contrib-jshint":"~0.8.0"},"bugs":{"url":"https://github.com/ryanve/lap/issues"},"_id":"lap@0.2.4","dist":{"shasum":"22840368252e86c3735281b1d3dbf98041616cde","tarball":"https://registry.npmjs.org/lap/-/lap-0.2.4.tgz","integrity":"sha512-3oSoo5g5wvLvdluTv0NrgHXWB+7bGnBSpSRo1irqN3/Xo9w1DtrVaYYoM+fTcDoOpuSXrhLaeo3pPV4rlVfozQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICjYtGOdRZt5FgzuPSrMElZo2wrfw+0TxOoIfUWg8q+wAiAVVo2qQ1A6KddManNDRup2yqIogX9uEYT/5evvkZIj+w=="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"ryanve","email":"ryanve@gmail.com"},"maintainers":[{"name":"ryanve","email":"ryanve@gmail.com"}]},"0.2.5":{"name":"lap","description":"Performance testing library","version":"0.2.5","homepage":"https://github.com/ryanve/lap","license":"MIT","author":{"name":"Ryan Van Etten"},"keywords":["performance","speed","time","timestamp","server","browser"],"main":"./lap.js","repository":{"type":"git","url":"https://github.com/ryanve/lap.git"},"devDependencies":{"aok":"~1.8.1","grunt":"~0.4.2","grunt-contrib-uglify":"~0.3.0","grunt-contrib-concat":"~0.3.0","grunt-contrib-jshint":"~0.8.0"},"bugs":{"url":"https://github.com/ryanve/lap/issues"},"_id":"lap@0.2.5","dist":{"shasum":"4e30413a569b874806ec2cf7f9be99e3e856dc06","tarball":"https://registry.npmjs.org/lap/-/lap-0.2.5.tgz","integrity":"sha512-9Kc0qC90Tc2Y045POFV5dkwv8lbxVXUh3ZHWSQM6Y/AgWrbBidfEjQwVwiAJ7U40qo3IRlB8oeIrPgHGBxNmQQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIApmnkV7ZR6FaZrH4VJEJh7aEMk5T+ITtoT9VPByvExPAiEA/4+tavmG7ToeLuddJ5bEODg/ITaoGVN7Adqe3K9QRQU="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"ryanve","email":"ryanve@gmail.com"},"maintainers":[{"name":"ryanve","email":"ryanve@gmail.com"}]},"0.3.0":{"name":"lap","description":"Performance testing library","version":"0.3.0","homepage":"https://github.com/ryanve/lap","license":"MIT","author":{"name":"Ryan Van Etten"},"scripts":{"lint":"jshint lap.js && jshint test.js","vendor":"browserify -r aok -o vendor.js","prestart":"npm update","start":"npm run vendor","pretest":"npm run lint","test":"node test.js"},"keywords":["profiling","performance","benchmarking","speed","time","timestamp","server","browser"],"main":"./lap.js","repository":{"type":"git","url":"git+https://github.com/ryanve/lap.git"},"bugs":{"url":"https://github.com/ryanve/lap/issues"},"devDependencies":{"aok":"^1.9.0","browserify":"^13.1.1","jshint":"^2.9.3"},"jshintConfig":{"asi":false,"boss":true,"browser":true,"eqnull":true,"expr":true,"latedef":"nofunc","laxcomma":true,"maxerr":5,"node":true,"sub":true,"supernew":true,"undef":true,"unused":true},"gitHead":"f31cb9b77db1d652f456ca057d3cb87894da3816","_id":"lap@0.3.0","_shasum":"b13aedec1cfdbaec90d273de13066a050958f1a7","_from":".","_npmVersion":"2.15.9","_nodeVersion":"4.5.0","_npmUser":{"name":"ryanve","email":"ryanve@gmail.com"},"maintainers":[{"name":"ryanve","email":"ryanve@gmail.com"}],"dist":{"shasum":"b13aedec1cfdbaec90d273de13066a050958f1a7","tarball":"https://registry.npmjs.org/lap/-/lap-0.3.0.tgz","integrity":"sha512-mglynTUi8BSXemQmT6FTjkrZYUs7juxx9Sij+rS11MFqfvGJtwu/Odat03YPFchvFFmlXdOg7Y8iktAvhPhuGw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB+2pqE5R5ycBhe++KSTEdMriKMH0DHXUsV2O1wNXBG1AiAEkS4VNQGb6slAbhIu0CM5PFsfHEbMNvm/j00IncI2WQ=="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/lap-0.3.0.tgz_1481422138113_0.31172534031793475"}},"0.3.1":{"name":"lap","description":"Performance testing library","version":"0.3.1","homepage":"https://github.com/ryanve/lap","license":"MIT","author":{"name":"Ryan Van Etten"},"scripts":{"lint":"jshint lap.js && jshint test.js","vendor":"browserify -r aok -o vendor.js","prestart":"npm update","start":"npm run vendor","pretest":"npm run lint","test":"node test.js"},"keywords":["profiling","performance","benchmarking","speed","time","timestamp","server","browser"],"main":"./lap.js","repository":{"type":"git","url":"git+https://github.com/ryanve/lap.git"},"bugs":{"url":"https://github.com/ryanve/lap/issues"},"devDependencies":{"aok":"^1.9.0","browserify":"^13.1.1","jshint":"^2.9.3"},"jshintConfig":{"asi":false,"boss":true,"browser":true,"eqnull":true,"expr":true,"latedef":"nofunc","laxcomma":true,"maxerr":5,"node":true,"sub":true,"supernew":true,"undef":true,"unused":true},"gitHead":"354ea1d135c638a8dd42906be23c5ac6c15ff06e","_id":"lap@0.3.1","_shasum":"98481325aaa3115e42c4013d6999622391ce6459","_from":".","_npmVersion":"2.15.9","_nodeVersion":"4.5.0","_npmUser":{"name":"ryanve","email":"ryanve@gmail.com"},"maintainers":[{"name":"ryanve","email":"ryanve@gmail.com"}],"dist":{"shasum":"98481325aaa3115e42c4013d6999622391ce6459","tarball":"https://registry.npmjs.org/lap/-/lap-0.3.1.tgz","integrity":"sha512-CPR1e+DxLJDtJooNFq7tWrPiCK+fq5pA7qR818vf1PpdKouVdQp2Etib0uX7JZTupteEpJQD6DJxIquzzhfBGQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEJ9flKZ34V0jBE50gXctkKSLZOxNFwAvNexsY4/hDw2AiEAjv3gKUSBgSfsrKvEwk5HH8AnW7RxmxYunEityenjbsg="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/lap-0.3.1.tgz_1481422904873_0.5855069181416184"}}},"readme":"# lap\r\n#### JavaScript performance testing library for the browser or server\r\n\r\n## API\r\n<a name=\"methods-toc\"></a>\r\n#### Methods\r\n\r\n- <a href=\"#time\"><b>lap.time</b>(laps, racers)</a>\r\n- <a href=\"#speed\"><b>lap.speed</b>(laps, racers)</a>\r\n- <a href=\"#timestamp\"><b>lap.timestamp</b>()</a>\r\n\r\n#### Parameters\r\n\r\n- <var>laps</var> refers to number of laps to run (positive integer)\r\n- <var>racers</var> refers to function(s) to race (array or single function)\r\n\r\n#### Usage tips\r\n\r\n- Use JavaScript exponential notation like `1e3` (rather than `1000`) for expressing large numbers\r\n- Accurate results require many <var>laps</var>. The ideal amount depends on how complex the racers are:\r\n  - `Infinity` speeds and `0` times both indicate inadequate <var>laps</var>\r\n  - Results taking too long indicates excessive <var>laps</var>. Use less <var>laps</var> <b>or</b> use the [`.async`](#async-sync) syntax\r\n\r\n<a name=\"time\"></a>\r\n#### `lap.time(laps, racers)`\r\n- Time how long it takes each racer to run the given number of laps\r\n- <b>@return</b> array of times measured in milliseconds\r\n\r\n##### `.time` example\r\n```js\r\nlap.time(1e5, [\r\n  function() { document.getElementById('example') },\r\n  function() { document.querySelector('#example') },\r\n  function() { document.querySelectorAll('#example')[0] }\r\n]) // => [40.000000000873115, 44.99999999825377, 116.00000000180444]\r\n```\r\n\r\n<a name=\"speed\"></a>\r\n#### `lap.speed(laps, racers)`\r\n- Estimate each racer's average speed over a course of <var>laps</var>\r\n- <b>@return</b> array of speeds measured in operations per second\r\n\r\n##### `.speed` example\r\n```js\r\nlap.speed(1e5, [\r\n  function() { document.getElementById('example') },\r\n  function() { document.querySelector('#example') },\r\n  function() { document.querySelectorAll('#example')[0] }\r\n]) // => [2500000.0004001777, 2222222.2219491494, 884955.7522315352]\r\n```\r\n\r\n<a name=\"timestamp\"></a>\r\n#### `lap.timestamp()`\r\n- Get a hi-resolution timestamp\r\n- <b>@return</b> number measured in milliseconds\r\n\r\n##### `.timestamp` example\r\n```js\r\nlap.timestamp() // => 1610.000000000582\r\n```\r\n\r\n<a name=\"async-sync\"></a>\r\n#### `.async`\r\n- [Methods](#methods-toc) are callable `.async` with the same arguments plus a `(err, result)` callback\r\n- <b>@return</b> undefined\r\n\r\n##### `.async` syntax\r\n- `lap.time.async(laps, racers, callback)`\r\n- `lap.speed.async(laps, racers, callback)`\r\n- `lap.timestamp.async(callback)`\r\n\r\n##### `.async` example\r\n```js\r\nlap.time.async(1e5, function() {\r\n  [].concat([0, 1, 2, 3])\r\n}, function(err, result) {\r\n  err || console.log(result[0] + ' ms')\r\n}) // => undefined\r\n```\r\n\r\n#### `.sync`\r\n\r\n`.sync` methods are included for expressiveness but these are just aliases. `lap.time === lap.time.sync` etc.\r\n\r\n##### `.sync` example\r\n```js\r\nlap.time.sync(1e5, [\r\n  function() { document.getElementById('example') },\r\n  function() { document.querySelector('#example') },\r\n  function() { document.querySelectorAll('#example')[0] }\r\n]) // => [40.000000000873115, 45.99999999481952, 115.00000000523869]\r\n```\r\n\r\n## Compatibility\r\n\r\nWorks...everywhere<b>!</b> Tested in node, Chrome, FF, Opera, IE8\r\n\r\n## Contribute\r\n\r\n<a name=\"cli\"></a>\r\n```sh\r\n$ npm start\r\n$ npm test\r\n```\r\n","maintainers":[{"name":"ryanve","email":"ryanve@gmail.com"}],"time":{"modified":"2022-06-19T10:35:42.441Z","created":"2014-03-10T05:00:48.619Z","0.1.0":"2014-03-10T05:03:12.232Z","0.2.0":"2014-03-10T12:01:21.999Z","0.2.1":"2014-03-10T13:20:27.666Z","0.2.2":"2014-03-11T02:38:53.526Z","0.2.3":"2014-03-11T12:07:23.882Z","0.2.4":"2014-03-11T14:45:22.086Z","0.2.5":"2014-03-11T19:34:55.720Z","0.3.0":"2016-12-11T02:08:58.351Z","0.3.1":"2016-12-11T02:21:46.628Z"},"readmeFilename":"README.md","homepage":"https://github.com/ryanve/lap","keywords":["profiling","performance","benchmarking","speed","time","timestamp","server","browser"],"repository":{"type":"git","url":"git+https://github.com/ryanve/lap.git"},"author":{"name":"Ryan Van Etten"},"bugs":{"url":"https://github.com/ryanve/lap/issues"},"license":"MIT","users":{}}