Skip to content

Instantly share code, notes, and snippets.

@JobLeonard
Last active March 7, 2025 11:13
Show Gist options
  • Save JobLeonard/330afad42e457bde73e5c143c71f4dce to your computer and use it in GitHub Desktop.
Save JobLeonard/330afad42e457bde73e5c143c71f4dce to your computer and use it in GitHub Desktop.
isTypedArray - instanceOf vs .constructor checks
{"title":"isTypedArray - instanceOf vs .constructor checks","initialization":"// runs once\n\nfunction isTypedArraySwitch(v) {\n\tswitch(v.constructor){\n\t\tcase Uint8ClampedArray: return true;\n\t\tcase Uint8Array: return true;\n\t\tcase Uint16Array: return true;\n\t\tcase Uint32Array: return true;\n\t\tcase Int8Array: return true;\n\t\tcase Int16Array: return true;\n\t\tcase Int32Array: return true;\n\t\tcase Float32Array: return true;\n\t\tcase Float64Array: return true;\n\t\tcase BigInt64Array: return true;\n\t\tcase BigUint64Array: return true;\n\t\tdefault: return false;\n}\n}\n\nconst isTypedArrayIndexOf = (() => {\n\tconst taConstructors = [Uint8ClampedArray, Uint8Array, Uint16Array, Uint32Array, Int8Array, Int16Array, Int32Array, Float32Array, Float64Array, BigInt64Array, BigUint64Array];\n\treturn function isTypedArrayIndexOf(v = 0) {\n\t\treturn taConstructors.indexOf(v.constructor) >= -1\n\t}\n})();\n\nconst isTypedArrayMap = (() => {\n\tconst taConstructors = new Map();\n\t[Uint8ClampedArray, Uint8Array, Uint16Array, Uint32Array, Int8Array, Int16Array, Int32Array, Float32Array, Float64Array, BigInt64Array, BigUint64Array].map(constr => taConstructors.set(constr, true));\n\t\n\treturn function isTypedArrayMap(v = 0) {\n\t\treturn taConstructors.get(v.constructor) === true;\n\t}\n})();\n\n\n\nconst isTypedArrayWeakMap = (() => {\n\tconst taConstructors = new WeakMap();\n\t[Uint8ClampedArray, Uint8Array, Uint16Array, Uint32Array, Int8Array, Int16Array, Int32Array, Float32Array, Float64Array, BigInt64Array, BigUint64Array].map(constr => taConstructors.set(constr, true));\n\t\n\treturn function isTypedArrayMap(v = 0) {\n\t\treturn taConstructors.get(v.constructor) === true;\n\t}\n})();\n\nfunction isTypedArrayInstanceOf(v) {\n\treturn (v instanceof Uint8ClampedArray) ||\n (v instanceof Uint8Array) ||\n (v instanceof Uint16Array) ||\n (v instanceof Uint32Array) ||\n (v instanceof Int8Array) ||\n (v instanceof Int16Array) ||\n (v instanceof Int32Array) ||\n (v instanceof Float32Array) ||\n (v instanceof Float64Array) ||\n (v instanceof BigInt64Array) ||\n (v instanceof BigUint64Array);\n}\n\nfunction isTypedArrayHasArrayBuffer(v) {\n return v.buffer ? (v.buffer instanceof ArrayBuffer) : false;\n}\n\nfunction isTypedArrayHasArrayBuffer2(v) {\n return v.buffer ? (v.buffer.constructor === ArrayBuffer) : false;\n}\n\nfunction isTypedArrayHasArrayBuffer3(v) {\n return (v.buffer ?? \"\").constructor === ArrayBuffer;\n}\n\nfunction isTypedArrayHasArrayBuffer4(v) {\n return v?.buffer?.constructor === ArrayBuffer;\n}\n\nconst isTypedArrayNameIndexOf = (() => {\n \tlet constructorNames = \"\";\n\t[Uint8ClampedArray, Uint8Array, Uint16Array, Uint32Array, Int8Array, Int16Array, Int32Array, Float32Array, Float64Array, BigInt64Array, BigUint64Array]\n \t.map(constr => constructorNames += constr.name + \" \");\n\treturn function isTypedArrayIndexOf(v = 0) {\n\t\treturn constructorNames.indexOf(v.constructor.name) >= -1\n\t}\n})();\n\nfunction isTypedArrayOR(v) {\n const c = v.constructor;\n\treturn c === Uint8ClampedArray ||\n\t\tc === Uint8Array ||\n\t\tc === Uint16Array ||\n\t\tc === Uint32Array ||\n\t\tc === Int8Array ||\n\t\tc === Int16Array ||\n\t\tc === Int32Array ||\n\t\tc === Float32Array ||\n\t\tc === Float64Array ||\n\t\tc === BigInt64Array ||\n\t\tc === BigUint64Array;\n}\n\nfunction generateRandomTypedArrays(){\n\tconst taConstructors = [Uint8ClampedArray, Uint8Array, Uint16Array, Uint32Array, Int8Array, Int16Array, Int32Array, Float32Array, Float64Array, BigInt64Array, BigUint64Array];\n\n\tconst arrays = [];\n\tfor (let i = 0; i < 1000; i++) {\n\t\tarrays[i] = Math.random() < 0.5 ? {} : new (taConstructors[taConstructors.length * Math.random() | 0])();\n\t}\n\treturn arrays;\n}","setup":"// runs before each test\n\nconst arrays = generateRandomTypedArrays();\nconst isTA = [false];\nfor (let i = 0; i < arrays.length; i++) isTA[i] = false;","tests":[{"name":"Constructor equality + switch","code":"// Constructor equality + switch\nfor (let i = 0; i < arrays.length; i++) isTA[i] = isTypedArraySwitch(arrays[i]);","results":{"aborted":false,"count":3998,"cycles":5,"hz":16767.667116209865,"stats":{"moe":0.000046764781646338124,"rme":78.41362914080385,"sem":0.00002270135031375637,"deviation":0.00011575462823474942,"mean":0.00005963858854481113,"variance":1.3399133957765047e-8,"numSamples":26},"times":{"cycle":0.2384350770021549,"elapsed":8.854,"period":0.00005963858854481113,"timeStamp":1741345974860}},"platforms":{"Mozilla/5.0 (X11; Linux x86_64; rv:129.0) Gecko/20100101 Firefox/129.0":{"aborted":false,"count":3451,"cycles":3,"hz":15771.343182393464,"stats":{"moe":0.00004713800421413532,"rme":74.34296413942376,"sem":0.000022882526317541418,"deviation":0.00011667844821344413,"mean":0.00006340614039242786,"variance":1.3613860277497364e-8,"numSamples":26},"times":{"cycle":0.21881459049426855,"elapsed":6.264,"period":0.00006340614039242786,"timeStamp":1723114709028}},"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36":{"aborted":false,"count":5001,"cycles":4,"hz":61465.95916017787,"stats":{"moe":2.532274102034593e-7,"rme":1.5564865653803437,"sem":1.2919765826707107e-7,"deviation":0.0000010335812661365686,"mean":0.000016269167742002356,"variance":1.0682902337084723e-12,"numSamples":64},"times":{"cycle":0.08136210787775378,"elapsed":6.056,"period":0.000016269167742002356,"timeStamp":1723114791460}},"Mozilla/5.0 (X11; Linux x86_64; rv:136.0) Gecko/20100101 Firefox/136.0":{"aborted":false,"count":3998,"cycles":5,"hz":16767.667116209865,"stats":{"moe":0.000046764781646338124,"rme":78.41362914080385,"sem":0.00002270135031375637,"deviation":0.00011575462823474942,"mean":0.00005963858854481113,"variance":1.3399133957765047e-8,"numSamples":26},"times":{"cycle":0.2384350770021549,"elapsed":8.854,"period":0.00005963858854481113,"timeStamp":1741345974860}},"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36":{"aborted":false,"count":5969,"cycles":4,"hz":73234.89958563638,"stats":{"moe":1.3242894854346354e-7,"rme":0.9698420748811958,"sem":6.756579007319568e-8,"deviation":5.405263205855654e-7,"mean":0.000013654692034235149,"variance":2.9216870324576944e-13,"numSamples":64},"times":{"cycle":0.0815048567523496,"elapsed":5.934,"period":0.000013654692034235149,"timeStamp":1741345557405}}}},{"name":"Constructor equality + Array.indexOf","code":"// Constructor equality + Array.indexOf\nfor (let i = 0; i < arrays.length; i++) isTA[i] = isTypedArrayIndexOf(arrays[i]);","results":{},"platforms":{"Mozilla/5.0 (X11; Linux x86_64; rv:129.0) Gecko/20100101 Firefox/129.0":{"aborted":false,"count":2213,"cycles":3,"hz":27534.80003567169,"stats":{"moe":3.813814804770639e-7,"rme":1.0501262802244382,"sem":1.94582387998502e-7,"deviation":0.000001556659103988016,"mean":0.00003631767794588982,"variance":2.4231875660287728e-12,"numSamples":64},"times":{"cycle":0.08037102129425418,"elapsed":5.871,"period":0.00003631767794588982,"timeStamp":1723114715298}},"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36":{"aborted":false,"count":2977,"cycles":4,"hz":36669.97628192348,"stats":{"moe":4.628099832327097e-7,"rme":1.697123110818087,"sem":2.361275424656682e-7,"deviation":0.0000018890203397253457,"mean":0.000027270265797607057,"variance":3.5683978438960606e-12,"numSamples":64},"times":{"cycle":0.08118358127947621,"elapsed":6.004,"period":0.000027270265797607057,"timeStamp":1723114797521}},"Mozilla/5.0 (X11; Linux x86_64; rv:136.0) Gecko/20100101 Firefox/136.0":{"aborted":false,"count":2150,"cycles":3,"hz":26728.892058307098,"stats":{"moe":4.0770777864233614e-7,"rme":1.0897577206663167,"sem":2.0801417277670212e-7,"deviation":0.000001637905234349806,"mean":0.00003741269925511967,"variance":2.6827335567104925e-12,"numSamples":62},"times":{"cycle":0.08043730339850728,"elapsed":14.678,"period":0.00003741269925511967,"timeStamp":1741345899883}},"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36":{"aborted":false,"count":3545,"cycles":5,"hz":44024.00352567013,"stats":{"moe":3.1401240220849586e-7,"rme":1.3824083101930968,"sem":1.6021040929004891e-7,"deviation":0.0000012716307012760249,"mean":0.00002271488097207938,"variance":1.6170446404277547e-12,"numSamples":63},"times":{"cycle":0.08052425304602141,"elapsed":5.943,"period":0.00002271488097207938,"timeStamp":1741345563345}}}},{"name":"Constructor equality + Map","code":"// Constructor equality + Map\nfor (let i = 0; i < arrays.length; i++) isTA[i] = isTypedArrayMap(arrays[i]);","results":{},"platforms":{"Mozilla/5.0 (X11; Linux x86_64; rv:129.0) Gecko/20100101 Firefox/129.0":{"aborted":false,"count":2443,"cycles":4,"hz":31453.494991597083,"stats":{"moe":2.786421192088895e-7,"rme":0.8764268500984804,"sem":1.4216434653514773e-7,"deviation":0.000001163665327972907,"mean":0.000031792969279476055,"variance":1.3541169955262934e-12,"numSamples":67},"times":{"cycle":0.07767022394976,"elapsed":6.097,"period":0.000031792969279476055,"timeStamp":1723114721174}},"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36":{"aborted":false,"count":3198,"cycles":4,"hz":39943.80616945425,"stats":{"moe":3.34627258168187e-7,"rme":1.3366286339285989,"sem":1.7072819294295255e-7,"deviation":0.0000013764546964073289,"mean":0.000025035170553293893,"variance":1.8946275312617917e-12,"numSamples":65},"times":{"cycle":0.08006247542943387,"elapsed":6.018,"period":0.000025035170553293893,"timeStamp":1723114803530}},"Mozilla/5.0 (X11; Linux x86_64; rv:136.0) Gecko/20100101 Firefox/136.0":{"aborted":false,"count":2370,"cycles":3,"hz":29408.527272358486,"stats":{"moe":4.173686093289288e-7,"rme":1.2274196130076136,"sem":2.1294316802496368e-7,"deviation":0.0000016494506868986641,"mean":0.00003400374288514321,"variance":2.720687568510475e-12,"numSamples":60},"times":{"cycle":0.08058887063778941,"elapsed":10.585,"period":0.00003400374288514321,"timeStamp":1741345914641}},"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36":{"aborted":false,"count":3130,"cycles":4,"hz":39107.905644128405,"stats":{"moe":2.7919486335567195e-7,"rme":1.0918726372438943,"sem":1.4244635885493468e-7,"deviation":0.0000011484392603951127,"mean":0.000025570277506029994,"variance":1.3189127348168735e-12,"numSamples":65},"times":{"cycle":0.08003496859387388,"elapsed":5.89,"period":0.000025570277506029994,"timeStamp":1741345569294}}}},{"name":"instanceof","code":"// instanceof\nfor (let i = 0; i < arrays.length; i++) isTA[i] = isTypedArrayInstanceOf(arrays[i]);","results":{},"platforms":{"Mozilla/5.0 (X11; Linux x86_64; rv:129.0) Gecko/20100101 Firefox/129.0":{"aborted":false,"count":1734,"cycles":7,"hz":12528.470669189746,"stats":{"moe":0.00003295505920109958,"rme":41.28764926023877,"sem":0.000016813805714846726,"deviation":0.00010896591499132985,"mean":0.00007981820179052014,"variance":1.1873570629897723e-8,"numSamples":42},"times":{"cycle":0.13840476190476192,"elapsed":6.568,"period":0.00007981820179052014,"timeStamp":1723114727276}},"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36":{"aborted":false,"count":4222,"cycles":8,"hz":52578.08539560226,"stats":{"moe":1.5686709634463457e-7,"rme":0.8247771587368363,"sem":8.003423282889519e-8,"deviation":6.452566137538903e-7,"mean":0.000019019330819597362,"variance":4.163560975931371e-13,"numSamples":65},"times":{"cycle":0.08029961472034006,"elapsed":6.127,"period":0.000019019330819597362,"timeStamp":1723114809553}},"Mozilla/5.0 (X11; Linux x86_64; rv:136.0) Gecko/20100101 Firefox/136.0":{"aborted":false,"count":1223,"cycles":5,"hz":6732.299760554574,"stats":{"moe":0.00006845697937746808,"rme":46.08729058712178,"sem":0.00003342625946165433,"deviation":0.00018000591608704765,"mean":0.00014853765214958652,"variance":3.240212982633724e-8,"numSamples":29},"times":{"cycle":0.18166154857894432,"elapsed":8.387,"period":0.00014853765214958652,"timeStamp":1741345925304}},"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36":{"aborted":false,"count":2766,"cycles":7,"hz":34006.18109189747,"stats":{"moe":2.628447091524113e-7,"rme":0.8938344778484021,"sem":1.341044434451078e-7,"deviation":0.0000010728355475608625,"mean":0.000029406418712457724,"variance":1.1509761121102156e-12,"numSamples":64},"times":{"cycle":0.08133815415865807,"elapsed":6.167,"period":0.000029406418712457724,"timeStamp":1741345575189}}}},{"name":"ArrayBuffer instanceof","code":"// ArrayBuffer instanceof\nfor (let i = 0; i < arrays.length; i++) isTA[i] = isTypedArrayHasArrayBuffer(arrays[i]);","results":{},"platforms":{"Mozilla/5.0 (X11; Linux x86_64; rv:129.0) Gecko/20100101 Firefox/129.0":{"aborted":false,"count":1983,"cycles":4,"hz":19679.926298625887,"stats":{"moe":0.0000034925323739063333,"rme":6.873277971404154,"sem":0.0000017819042724011905,"deviation":0.000012345394936091657,"mean":0.00005081319842492617,"variance":1.5240877612807756e-10,"numSamples":48},"times":{"cycle":0.10076257247662859,"elapsed":5.938,"period":0.00005081319842492617,"timeStamp":1723114733850}},"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36":{"aborted":false,"count":2257,"cycles":5,"hz":27178.40264575983,"stats":{"moe":4.990608770044473e-7,"rme":1.3563677459972894,"sem":2.5462289643084046e-7,"deviation":0.000002021006586176879,"mean":0.000036793921005361676,"variance":4.084467621370322e-12,"numSamples":63},"times":{"cycle":0.0830438797091013,"elapsed":5.963,"period":0.000036793921005361676,"timeStamp":1723114815685}},"Mozilla/5.0 (X11; Linux x86_64; rv:136.0) Gecko/20100101 Firefox/136.0":{"aborted":false,"count":1900,"cycles":5,"hz":17427.92961437664,"stats":{"moe":0.000004302014817107359,"rme":7.497521143255245,"sem":0.000002194905518932326,"deviation":0.000015364338632526284,"mean":0.00005737916219119226,"variance":2.3606290161493966e-10,"numSamples":49},"times":{"cycle":0.10902040816326529,"elapsed":10.051,"period":0.00005737916219119226,"timeStamp":1741345933770}},"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36":{"aborted":false,"count":2012,"cycles":5,"hz":25384.71090597183,"stats":{"moe":2.99304685730647e-7,"rme":0.7597762920075227,"sem":1.527064723115546e-7,"deviation":0.0000012216517784924369,"mean":0.000039393791156579486,"variance":1.492433067893734e-12,"numSamples":64},"times":{"cycle":0.07926030780703792,"elapsed":5.927,"period":0.000039393791156579486,"timeStamp":1741345581361}}}},{"name":"ArrayBuffer constructor + ternary","code":"// ArrayBuffer constructor + ternary\nfor (let i = 0; i < arrays.length; i++) isTA[i] = isTypedArrayHasArrayBuffer2(arrays[i]);","results":{},"platforms":{"Mozilla/5.0 (X11; Linux x86_64; rv:129.0) Gecko/20100101 Firefox/129.0":{"aborted":false,"count":1997,"cycles":3,"hz":18375.762102215336,"stats":{"moe":0.000003758066145507095,"rme":6.905732945422774,"sem":0.0000019173806864832116,"deviation":0.00001328400306576086,"mean":0.000054419511660930925,"variance":1.764647374511439e-10,"numSamples":48},"times":{"cycle":0.10867576478687906,"elapsed":5.86,"period":0.000054419511660930925,"timeStamp":1723114739793}},"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36":{"aborted":false,"count":2215,"cycles":4,"hz":27761.60780758342,"stats":{"moe":4.2265369859398414e-7,"rme":1.1733546218790758,"sem":2.1563964213978782e-7,"deviation":0.0000017251171371183026,"mean":0.00003602096848752535,"variance":2.9760291367792483e-12,"numSamples":64},"times":{"cycle":0.07978644519986865,"elapsed":5.82,"period":0.00003602096848752535,"timeStamp":1723114821654}},"Mozilla/5.0 (X11; Linux x86_64; rv:136.0) Gecko/20100101 Firefox/136.0":{"aborted":false,"count":3131,"cycles":6,"hz":26853.20365749612,"stats":{"moe":0.0000034347530789046553,"rme":9.223412394103855,"sem":0.0000017524250402574772,"deviation":0.000011755624546465575,"mean":0.00003723950455799147,"variance":1.3819470847746395e-10,"numSamples":45},"times":{"cycle":0.1165968887710713,"elapsed":8.469,"period":0.00003723950455799147,"timeStamp":1741345883695}},"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36":{"aborted":false,"count":2150,"cycles":3,"hz":25810.41974132597,"stats":{"moe":3.719874153165528e-7,"rme":0.9601151327811178,"sem":1.8978949761048614e-7,"deviation":0.0000014823033622027861,"mean":0.000038744042523216495,"variance":2.1972232575976843e-12,"numSamples":61},"times":{"cycle":0.08329969142491546,"elapsed":5.887,"period":0.000038744042523216495,"timeStamp":1741345587293}}}},{"name":"ArrayBuffer constructor + nullish coalescing operator","code":"// ArrayBuffer constructor + nullish coalescing operator\nfor (let i = 0; i < arrays.length; i++) isTA[i] = isTypedArrayHasArrayBuffer3(arrays[i]);","results":{},"platforms":{"Mozilla/5.0 (X11; Linux x86_64; rv:129.0) Gecko/20100101 Firefox/129.0":{"aborted":false,"count":2195,"cycles":4,"hz":17730.413285708622,"stats":{"moe":0.000006739728973412412,"rme":11.949818013226675,"sem":0.0000034386372313328632,"deviation":0.000022284916252159412,"mean":0.000056400264555933254,"variance":4.966174923657587e-10,"numSamples":42},"times":{"cycle":0.1237985807002735,"elapsed":5.889,"period":0.000056400264555933254,"timeStamp":1723114745658}},"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36":{"aborted":false,"count":3252,"cycles":4,"hz":40196.22006513844,"stats":{"moe":2.4942311596425314e-7,"rme":1.0025866458631663,"sem":1.272566918184965e-7,"deviation":0.000001010068677661589,"mean":0.00002487796112120713,"variance":1.0202387335930307e-12,"numSamples":63},"times":{"cycle":0.08090312956616559,"elapsed":5.881,"period":0.00002487796112120713,"timeStamp":1723114827479}},"Mozilla/5.0 (X11; Linux x86_64; rv:136.0) Gecko/20100101 Firefox/136.0":{"aborted":false,"count":3311,"cycles":4,"hz":24331.18968258613,"stats":{"moe":0.000006988872499551223,"rme":17.004758245399067,"sem":0.0000035657512752812363,"deviation":0.000022268109576917856,"mean":0.00004109951108209483,"variance":4.958687041296207e-10,"numSamples":39},"times":{"cycle":0.136080481192816,"elapsed":11.816,"period":0.00004109951108209483,"timeStamp":1741345892301}},"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36":{"aborted":false,"count":2928,"cycles":4,"hz":37507.488468530326,"stats":{"moe":1.9574813612078714e-7,"rme":0.7342020958286728,"sem":9.987149802080976e-8,"deviation":8.174834431556891e-7,"mean":0.000026661342596666362,"variance":6.682791798336807e-13,"numSamples":67},"times":{"cycle":0.0780644111230391,"elapsed":5.987,"period":0.000026661342596666362,"timeStamp":1741345593185}}}},{"name":"ArrayBuffer constructor + optional chaining","code":"// ArrayBuffer constructor + optional chaining\nfor (let i = 0; i < arrays.length; i++) isTA[i] = isTypedArrayHasArrayBuffer4(arrays[i]);","results":{},"platforms":{"Mozilla/5.0 (X11; Linux x86_64; rv:129.0) Gecko/20100101 Firefox/129.0":{"aborted":false,"count":2224,"cycles":4,"hz":18171.98587271593,"stats":{"moe":0.000006537228148947648,"rme":11.879441756939755,"sem":0.000003335320484156963,"deviation":0.00002161534720390944,"mean":0.000055029758827924024,"variance":4.672232347455556e-10,"numSamples":42},"times":{"cycle":0.12238618363330303,"elapsed":5.901,"period":0.000055029758827924024,"timeStamp":1723114751552}},"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36":{"aborted":false,"count":3277,"cycles":4,"hz":41288.80218771943,"stats":{"moe":1.9500627954504013e-7,"rme":0.8051575701498279,"sem":9.949299976787762e-8,"deviation":8.082849511066746e-7,"mean":0.000024219641816042583,"variance":6.533245621855194e-13,"numSamples":66},"times":{"cycle":0.07936776623117155,"elapsed":6.032,"period":0.000024219641816042583,"timeStamp":1723114833366}},"Mozilla/5.0 (X11; Linux x86_64; rv:136.0) Gecko/20100101 Firefox/136.0":{"aborted":false,"count":3324,"cycles":5,"hz":24234.609601186967,"stats":{"moe":0.000006955142102188979,"rme":16.855515356732873,"sem":0.0000035485418888719284,"deviation":0.000022160636993238065,"mean":0.000041263301388235354,"variance":4.910938319460714e-10,"numSamples":39},"times":{"cycle":0.1371592138144943,"elapsed":9.476,"period":0.000041263301388235354,"timeStamp":1741345904220}},"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36":{"aborted":false,"count":2998,"cycles":7,"hz":37847.028527502625,"stats":{"moe":3.190243696848385e-7,"rme":1.2074124420430628,"sem":1.6276753555348905e-7,"deviation":0.0000013021402844279124,"mean":0.000026422153572065013,"variance":1.6955693203300047e-12,"numSamples":64},"times":{"cycle":0.0792136164090509,"elapsed":6.088,"period":0.000026422153572065013,"timeStamp":1741345599177}}}},{"name":"Constructor equality + WeakMap","code":"// Constructor equality + WeakMap\nfor (let i = 0; i < arrays.length; i++) isTA[i] = isTypedArrayMap(arrays[i]);","results":{},"platforms":{"Mozilla/5.0 (X11; Linux x86_64; rv:129.0) Gecko/20100101 Firefox/129.0":{"aborted":false,"count":2442,"cycles":4,"hz":30345.88205817641,"stats":{"moe":5.123036936179459e-7,"rme":1.554630746449833,"sem":2.6137943551936015e-7,"deviation":0.000002091035484154881,"mean":0.00003295340033560038,"variance":4.372429395994838e-12,"numSamples":64},"times":{"cycle":0.08047220361953612,"elapsed":5.999,"period":0.00003295340033560038,"timeStamp":1723114757458}},"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36":{"aborted":false,"count":3197,"cycles":4,"hz":40126.18038546936,"stats":{"moe":3.238490724769511e-7,"rme":1.299482629987708,"sem":1.6522911861068935e-7,"deviation":0.0000013321197417635702,"mean":0.0000249213852500679,"variance":1.7745430063962407e-12,"numSamples":65},"times":{"cycle":0.07967366864446708,"elapsed":6.079,"period":0.0000249213852500679,"timeStamp":1723114839404}},"Mozilla/5.0 (X11; Linux x86_64; rv:136.0) Gecko/20100101 Firefox/136.0":{"aborted":false,"count":2666,"cycles":4,"hz":33370.482051774015,"stats":{"moe":2.528411656958545e-7,"rme":0.8437431581803131,"sem":1.290005947427829e-7,"deviation":0.0000010075268532815857,"mean":0.000029966603372660565,"variance":1.015110360083494e-12,"numSamples":61},"times":{"cycle":0.07989096459151307,"elapsed":10.714,"period":0.000029966603372660565,"timeStamp":1741345913780}},"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36":{"aborted":false,"count":3167,"cycles":6,"hz":39515.90733587574,"stats":{"moe":2.2679695566895283e-7,"rme":0.8962087484273058,"sem":1.157127324841596e-7,"deviation":9.32905874047213e-7,"mean":0.00002530626442410242,"variance":8.703133698317945e-13,"numSamples":65},"times":{"cycle":0.08014493943113236,"elapsed":6.109,"period":0.00002530626442410242,"timeStamp":1741345605270}}}},{"name":"Constructor name equality + Array.indexOf","code":"// Constructor name equality + Array.indexOf\nfor (let i = 0; i < arrays.length; i++) isTA[i] = isTypedArrayNameIndexOf(arrays[i]);","results":{"aborted":false,"count":1406,"cycles":3,"hz":17070.652380696236,"stats":{"moe":0.000001295093786462313,"rme":2.2108095829097785,"sem":6.607621359501597e-7,"deviation":0.00000520284626132042,"mean":0.000058580069331785814,"variance":2.706960921893587e-11,"numSamples":62},"times":{"cycle":0.08236357748049085,"elapsed":8.829,"period":0.000058580069331785814,"timeStamp":1741345970935}},"platforms":{"Mozilla/5.0 (X11; Linux x86_64; rv:136.0) Gecko/20100101 Firefox/136.0":{"aborted":false,"count":1406,"cycles":3,"hz":17070.652380696236,"stats":{"moe":0.000001295093786462313,"rme":2.2108095829097785,"sem":6.607621359501597e-7,"deviation":0.00000520284626132042,"mean":0.000058580069331785814,"variance":2.706960921893587e-11,"numSamples":62},"times":{"cycle":0.08236357748049085,"elapsed":8.829,"period":0.000058580069331785814,"timeStamp":1741345970935}},"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36":{"aborted":false,"count":2572,"cycles":5,"hz":31852.534350105903,"stats":{"moe":5.804755876553373e-7,"rme":1.8489618595189539,"sem":2.9616101410986594e-7,"deviation":0.0000023692881128789275,"mean":0.000031394676134983124,"variance":5.61352616182939e-12,"numSamples":64},"times":{"cycle":0.08074710701917659,"elapsed":6.092,"period":0.000031394676134983124,"timeStamp":1741345611385}}}},{"name":"constructor + plain || chain","code":"// Constructor name equality + Array.indexOf\nfor (let i = 0; i < arrays.length; i++) isTA[i] = isTypedArrayOR(arrays[i]);\n","results":{"aborted":false,"count":3514,"cycles":4,"hz":17489.907000678442,"stats":{"moe":0.00004156935480809698,"rme":72.70441496718215,"sem":0.000020297536527391104,"deviation":0.00010930557937883366,"mean":0.000057175832893863274,"variance":1.1947709683342505e-8,"numSamples":29},"times":{"cycle":0.20091587678903555,"elapsed":12.172,"period":0.000057175832893863274,"timeStamp":1741345979900}},"platforms":{"Mozilla/5.0 (X11; Linux x86_64; rv:136.0) Gecko/20100101 Firefox/136.0":{"aborted":false,"count":3514,"cycles":4,"hz":17489.907000678442,"stats":{"moe":0.00004156935480809698,"rme":72.70441496718215,"sem":0.000020297536527391104,"deviation":0.00010930557937883366,"mean":0.000057175832893863274,"variance":1.1947709683342505e-8,"numSamples":29},"times":{"cycle":0.20091587678903555,"elapsed":12.172,"period":0.000057175832893863274,"timeStamp":1741345979900}},"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36":{"aborted":false,"count":5976,"cycles":4,"hz":75235.06697212078,"stats":{"moe":6.731529827147514e-8,"rme":0.5064470973702719,"sem":3.43445399344261e-8,"deviation":2.747563194754088e-7,"mean":0.000013291674218493903,"variance":7.54910350916729e-14,"numSamples":64},"times":{"cycle":0.07943104512971956,"elapsed":5.939,"period":0.000013291674218493903,"timeStamp":1741345617482}}}}]}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment