{"ScriptPreparationCode":"const data = Array.from({ length: 1000 }, () =\u003E Array.from({ length: 10 }, () =\u003E Math.random()));\r\nconst data2 = Array.from({ length: 100 }, () =\u003E Array.from({ length: 100 }, () =\u003E Math.random()))\r\n\r\n// We also need to take into account the overhead of creating arrays.\r\nconst createWholeArray = () =\u003E {\r\n\tconst arr = new Array(1000);\r\n \tdata.forEach((v, i) =\u003E {\r\n \tarr[i] = v.slice()\r\n });\r\n \treturn arr;\r\n}\r\n\r\nconst createArray = (index) =\u003E {\r\n\treturn data[index].slice();\r\n}\r\n\r\nconst createTypedArray = (index) =\u003E {\r\n\treturn new Float32Array(data[index]);\r\n}\r\n\r\nconst createWholeArray2 = () =\u003E {\r\n\tconst arr = new Array(100);\r\n \tdata.forEach((v, i) =\u003E {\r\n \tarr[i] = v.slice();\r\n });\r\n \treturn arr;\r\n}\r\n\r\nconst createArray2 = (index) =\u003E {\r\n\treturn data2[index].slice();\r\n}\r\n\r\nconst createTypedArray2 = (index) =\u003E {\r\n\treturn new Float32Array(data[index]);\r\n}","TestCases":[{"Name":"For loop from direct data. Length 10","Code":"const arr = new Float32Array(10000);\r\nfor (let i = 0; i \u003C 1000; i\u002B\u002B) {\r\n\tfor (let j = 0; j \u003C 10; j\u002B\u002B) {\r\n \tarr[i * 10 \u002B j] = data[i][j];\r\n }\r\n}","IsDeferred":false},{"Name":"For loop from copied data. Length 10","Code":"const arr = new Float32Array(10000);\r\nconst copied = createWholeArray();\r\nfor (let i = 0; i \u003C 1000; i\u002B\u002B) {\r\n\tfor (let j = 0; j \u003C 10; j\u002B\u002B) {\r\n \tarr[i * 10 \u002B j] = copied[i][j];\r\n }\r\n}","IsDeferred":false},{"Name":"For loop with flat. Length10","Code":"const arr = new Float32Array(10000);\r\nconst copied = createWholeArray().flat();\r\nfor (let i = 0; i \u003C 10000; i\u002B\u002B) {\r\n\tarr[i] = copied[i];\r\n}","IsDeferred":false},{"Name":"For loop using TypedArray. Length 10","Code":"const arr = new Float32Array(10000);\r\nfor (let i = 0; i \u003C 1000; i\u002B\u002B) {\r\n\tconst typed = createTypedArray(i);\r\n \tfor (let j = 0; j \u003C 10; j\u002B\u002B) {\r\n \tarr[i * 10 \u002B j] = typed[j];\r\n }\r\n}","IsDeferred":false},{"Name":"For loop using set. Length 10","Code":"const arr = new Float32Array(10000);\r\nconst copied = createWholeArray();\r\nfor (let i = 0; i \u003C 1000; i\u002B\u002B) {\r\n\tarr.set(copied[i], i * 10);\r\n}","IsDeferred":false},{"Name":"For loop using set with seperated array. Length 10","Code":"const arr = new Float32Array(10000);\r\nfor (let i = 0; i \u003C 1000; i\u002B\u002B) {\r\n\tarr.set(createArray(i), i * 10);\r\n}","IsDeferred":false},{"Name":"For loop using set with TypedArray. Length 10","Code":"const arr = new Float32Array(10000);\r\nfor (let i = 0; i \u003C 1000; i\u002B\u002B) {\r\n\tarr.set(createTypedArray(i), i * 10);\r\n}","IsDeferred":false},{"Name":"For loop direct set. Length 10","Code":"const arr = new Float32Array(10000);\r\nfor (let i = 0; i \u003C 1000; i\u002B\u002B) {\r\n arr[i * 10] = data[i][0];\r\n arr[i * 10 \u002B 1] = data[i][1];\r\n arr[i * 10 \u002B 2] = data[i][2];\r\n arr[i * 10 \u002B 3] = data[i][3];\r\n arr[i * 10 \u002B 4] = data[i][4];\r\n arr[i * 10 \u002B 5] = data[i][5];\r\n arr[i * 10 \u002B 6] = data[i][6];\r\n arr[i * 10 \u002B 7] = data[i][7];\r\n \tarr[i * 10 \u002B 8] = data[i][8];\r\n \tarr[i * 10 \u002B 9] = data[i][9];\r\n}","IsDeferred":false},{"Name":"For loop from direct data. Length 100","Code":"const arr = new Float32Array(10000);\r\nfor (let i = 0; i \u003C 100; i\u002B\u002B) {\r\n\tfor (let j = 0; j \u003C 100; j\u002B\u002B) {\r\n \tarr[i * 100 \u002B j] = data2[i][j];\r\n }\r\n}","IsDeferred":false},{"Name":"For loop from copied data. Length 100","Code":"const arr = new Float32Array(10000);\r\nconst copied = createWholeArray2();\r\nfor (let i = 0; i \u003C 100; i\u002B\u002B) {\r\n\tfor (let j = 0; j \u003C 100; j\u002B\u002B) {\r\n \tarr[i * 100 \u002B j] = copied[i][j];\r\n }\r\n}","IsDeferred":false},{"Name":"For loop with flat Length.100","Code":"const arr = new Float32Array(10000);\r\nconst copied = createWholeArray2().flat();\r\nfor (let i = 0; i \u003C 10000; i\u002B\u002B) {\r\n\tarr[i] = copied[i];\r\n}","IsDeferred":false},{"Name":"For loop using TypedArray. Length 100","Code":"const arr = new Float32Array(10000);\r\nfor (let i = 0; i \u003C 100; i\u002B\u002B) {\r\n\tconst typed = createTypedArray2(i);\r\n \tfor (let j = 0; j \u003C 100; j\u002B\u002B) {\r\n \tarr[i * 100 \u002B j] = typed[j];\r\n }\r\n}","IsDeferred":false},{"Name":"For loop using set. Length 100","Code":"const arr = new Float32Array(10000);\r\nconst copied = createWholeArray2();\r\nfor (let i = 0; i \u003C 100; i\u002B\u002B) {\r\n\tarr.set(copied[i], i * 100);\r\n}","IsDeferred":false},{"Name":"For loop using set with seperated array. Length 100","Code":"const arr = new Float32Array(10000);\r\nfor (let i = 0; i \u003C 100; i\u002B\u002B) {\r\n\tarr.set(createArray2(i), i * 100);\r\n}","IsDeferred":false},{"Name":"For loop using set with TypedArray. Length 100","Code":"const arr = new Float32Array(10000);\r\nfor (let i = 0; i \u003C 100; i\u002B\u002B) {\r\n\tarr.set(createTypedArray2(i), i * 100);\r\n}","IsDeferred":false},{"Name":"Set with flatted array. Length 10","Code":"const arr = new Float32Array(10000);\r\nconst copied = createWholeArray().flat();\r\narr.set(copied, 0);","IsDeferred":false},{"Name":"Set with flatted array. Length 100","Code":"const arr = new Float32Array(10000);\r\nconst copied = createWholeArray2().flat();\r\narr.set(copied, 0);","IsDeferred":false}]}