Test name | Executions per second |
---|---|
array.from mapped fn | 241746.8 Ops/sec |
old impl | 341066.7 Ops/sec |
<!--your preparation HTML code goes here-->
/*your preparation JavaScript code goes here
To execute async code during the script preparation, wrap it as function globalMeasureThatScriptPrepareFunction, example:*/
async function globalMeasureThatScriptPrepareFunction() {
// This function is optional, feel free to remove it.
// await someThing();
}
const generateChannelRanges = (startFrequency, channelWidth, count) => {
return Array.from({ length: count }, (_, i) => {
const start = startFrequency + i * channelWidth;
return { start, end: start + channelWidth };
});
};
const channelRanges = {
320: [generateChannelRanges(5945, 320, 3), generateChannelRanges(6105, 320, 3)].sort(
(a, b) => a.start - b.start
),
240: generateChannelRanges(5490, 240, 1),
160: [
generateChannelRanges(5170, 160, 1),
generateChannelRanges(5490, 160, 1),
generateChannelRanges(5945, 160, 7),
],
80: [
generateChannelRanges(5170, 80, 2),
generateChannelRanges(5490, 80, 3),
generateChannelRanges(5735, 80, 1),
generateChannelRanges(5945, 80, 14),
],
40: [
generateChannelRanges(2402, 40, 2),
generateChannelRanges(5170, 40, 4),
generateChannelRanges(5490, 40, 6),
generateChannelRanges(5735, 40, 2),
generateChannelRanges(5945, 40, 29),
],
20: [
generateChannelRanges(2402, 20, 4),
generateChannelRanges(5170, 20, 8),
generateChannelRanges(5490, 20, 12),
generateChannelRanges(5735, 20, 5),
generateChannelRanges(5925, 20, 60),
],
};
const generateChannelRanges = (startFrequency, channelWidth, count) => {
let frequency = startFrequency;
const ranges = [];
for (let i = 0; i < count; i++) {
ranges.push({ start: frequency, end: frequency + channelWidth });
frequency += channelWidth;
}
return ranges;
};
const channelRanges = {
320: [generateChannelRanges(5945, 320, 3), generateChannelRanges(6105, 320, 3)].sort(
(a, b) => a.start - b.start
),
240: generateChannelRanges(5490, 240, 1),
160: [
generateChannelRanges(5170, 160, 1),
generateChannelRanges(5490, 160, 1),
generateChannelRanges(5945, 160, 7),
],
80: [
generateChannelRanges(5170, 80, 2),
generateChannelRanges(5490, 80, 3),
generateChannelRanges(5735, 80, 1),
generateChannelRanges(5945, 80, 14),
],
40: [
generateChannelRanges(2402, 40, 2),
generateChannelRanges(5170, 40, 4),
generateChannelRanges(5490, 40, 6),
generateChannelRanges(5735, 40, 2),
generateChannelRanges(5945, 40, 29),
],
20: [
generateChannelRanges(2402, 20, 4),
generateChannelRanges(5170, 20, 8),
generateChannelRanges(5490, 20, 12),
generateChannelRanges(5735, 20, 5),
generateChannelRanges(5925, 20, 60),
],
};