Skip to content

Instantly share code, notes, and snippets.

@JobLeonard
Last active September 25, 2023 21:09
Show Gist options
  • Select an option

  • Save JobLeonard/c0cee90340e2d80e3afb617ad3ac47fb to your computer and use it in GitHub Desktop.

Select an option

Save JobLeonard/c0cee90340e2d80e3afb617ad3ac47fb to your computer and use it in GitHub Desktop.
Map iterator
{"title":"Map iterator","initialization":"// runs once","setup":"// runs before each test\nconst m = new Map();\nfor (let i = 0, j = 0; i < 10000; i++) {\n j += Math.random() * 1000 | 0;\n m.set(j, i);\n}","tests":[{"name":"for-of, destructured","code":"let ksum = 0, vsum = 0;\nfor (const [key, val] of m) {\n ksum += key;\n vsum += val;\n}","results":{"aborted":false,"count":175,"cycles":4,"hz":2147.940090241326,"stats":{"moe":0.000008193531027470044,"rme":1.7599213774539113,"sem":0.000004180372973199003,"deviation":0.00003264975665909645,"mean":0.0004655623332062524,"variance":1.0660066098982127e-9,"numSamples":61},"times":{"cycle":0.08147340831109418,"elapsed":6.602,"period":0.0004655623332062524,"timeStamp":1695676131133}},"platforms":{"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/118.0":{"aborted":false,"count":175,"cycles":4,"hz":2147.940090241326,"stats":{"moe":0.000008193531027470044,"rme":1.7599213774539113,"sem":0.000004180372973199003,"deviation":0.00003264975665909645,"mean":0.0004655623332062524,"variance":1.0660066098982127e-9,"numSamples":61},"times":{"cycle":0.08147340831109418,"elapsed":6.602,"period":0.0004655623332062524,"timeStamp":1695676131133}},"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36":{"aborted":false,"count":749,"cycles":7,"hz":9280.095554663776,"stats":{"moe":0.0000015438724310134545,"rme":1.4327283684015917,"sem":7.876900158231911e-7,"deviation":0.000006202277386872295,"mean":0.00010775751112793694,"variance":3.8468244783707416e-11,"numSamples":62},"times":{"cycle":0.08071037583482477,"elapsed":6.226,"period":0.00010775751112793694,"timeStamp":1695676071475}}}},{"name":"entries()","code":"let ksum = 0, vsum = 0;\nconst iter = m.entries();\nlet p = null;\nwhile (p = iter.next().value) {\n ksum += p[0];\n vsum += p[1];\n}","results":{"aborted":false,"count":213,"cycles":4,"hz":2586.81439512495,"stats":{"moe":0.000004846209355064289,"rme":1.2536244121469502,"sem":0.0000024725557934001476,"deviation":0.000019152334820814878,"mean":0.00038657586021037174,"variance":3.6681192908859804e-10,"numSamples":60},"times":{"cycle":0.08234065822480918,"elapsed":6.21,"period":0.00038657586021037174,"timeStamp":1695676137744}},"platforms":{"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/118.0":{"aborted":false,"count":213,"cycles":4,"hz":2586.81439512495,"stats":{"moe":0.000004846209355064289,"rme":1.2536244121469502,"sem":0.0000024725557934001476,"deviation":0.000019152334820814878,"mean":0.00038657586021037174,"variance":3.6681192908859804e-10,"numSamples":60},"times":{"cycle":0.08234065822480918,"elapsed":6.21,"period":0.00038657586021037174,"timeStamp":1695676137744}},"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36":{"aborted":false,"count":976,"cycles":2,"hz":11578.374173473363,"stats":{"moe":4.437251475134958e-7,"rme":0.5137615788090918,"sem":2.2639038138443663e-7,"deviation":0.00000176816540283618,"mean":0.00008636791185165273,"variance":3.1264088917868308e-12,"numSamples":61},"times":{"cycle":0.08429508196721307,"elapsed":5.796,"period":0.00008636791185165273,"timeStamp":1695676077706}}}},{"name":"keys()","code":"let ksum = 0, vsum = 0;\nconst iter = m.keys();\nlet k = null;\nwhile ((k = iter.next().value) !== undefined) {\n ksum += k;\n vsum += m.get(k);\n}","results":{"aborted":false,"count":166,"cycles":6,"hz":2087.6268490728876,"stats":{"moe":0.0000032503197430680025,"rme":0.678545476370045,"sem":0.000001658326399524491,"deviation":0.000013162557737144833,"mean":0.00047901280846435694,"variance":1.732529261836713e-10,"numSamples":63},"times":{"cycle":0.07951612620508325,"elapsed":6.164,"period":0.00047901280846435694,"timeStamp":1695676143976}},"platforms":{"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/118.0":{"aborted":false,"count":166,"cycles":6,"hz":2087.6268490728876,"stats":{"moe":0.0000032503197430680025,"rme":0.678545476370045,"sem":0.000001658326399524491,"deviation":0.000013162557737144833,"mean":0.00047901280846435694,"variance":1.732529261836713e-10,"numSamples":63},"times":{"cycle":0.07951612620508325,"elapsed":6.164,"period":0.00047901280846435694,"timeStamp":1695676143976}},"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36":{"aborted":false,"count":392,"cycles":7,"hz":5137.923405954205,"stats":{"moe":6.79892007429716e-7,"rme":0.3493233058494328,"sem":3.4688367726005917e-7,"deviation":0.0000028180963160020667,"mean":0.0001946311614612873,"variance":7.94166684626442e-12,"numSamples":66},"times":{"cycle":0.07629541529282463,"elapsed":6.177,"period":0.0001946311614612873,"timeStamp":1695676083507}}}},{"name":"for-of, no destructuring","code":"let ksum = 0, vsum = 0;\nfor (const kv of m) {\n ksum += kv[0];\n vsum += kv[1];\n}","results":{"aborted":false,"count":976,"cycles":2,"hz":3047.6190476190473,"stats":{"moe":0.000005587485677752344,"rme":1.7028527779816665,"sem":0.0000026696061527722616,"deviation":0.000011938841661500931,"mean":0.000328125,"variance":1.4253594021839033e-10,"numSamples":20},"times":{"cycle":0.32025000000000003,"elapsed":6.659,"period":0.000328125,"timeStamp":1695676150146}},"platforms":{"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36":{"aborted":false,"count":1036,"cycles":8,"hz":13544.703843409106,"stats":{"moe":2.628119090451863e-7,"rme":0.3559709474538019,"sem":1.340877086965236e-7,"deviation":0.0000010810496683901462,"mean":0.00007382959506247182,"variance":1.1686683855264452e-12,"numSamples":65},"times":{"cycle":0.0764874604847208,"elapsed":6.14,"period":0.00007382959506247182,"timeStamp":1695676089690}},"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/118.0":{"aborted":false,"count":976,"cycles":2,"hz":3047.6190476190473,"stats":{"moe":0.000005587485677752344,"rme":1.7028527779816665,"sem":0.0000026696061527722616,"deviation":0.000011938841661500931,"mean":0.000328125,"variance":1.4253594021839033e-10,"numSamples":20},"times":{"cycle":0.32025000000000003,"elapsed":6.659,"period":0.000328125,"timeStamp":1695676150146}}}}]}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment