It’s December 1st. And that means 2 things: a new Splatoon 3 update is out (and it’s fun!) and Advent of Code 2022 started!
What a time to be alive!
It’s December 1st. And that means 2 things: a new Splatoon 3 update is out (and it’s fun!) and Advent of Code 2022 started!
What a time to be alive!
Found this Wikipedia article about BASIC benchmarks and it had some run times for some old computers I used before. E.g. benchmark 7 took 21.1s on a BBC Micro which was particularly fast. A C64 took 47.5s
How long does a current computer take for this kind of work?
I got no BASIC, but JavaScript is kind’a similar: it’s often the first language to learn programming. So let’s see how long that takes (after translating the BASIC program into JavaScript):
function doNothing() {
return;
}
function bench7() {
let k = 0;
let m = [];
do {
++k;
let a = k / 2 * 3 + 4 - 5;
doNothing();
for (let l = 0; l < 5; ++l) {
m[l] = a;
}
} while (k < 1000);
}
function manyBench(n) {
console.log("S");
for (let i=0; i<n; ++i) {
bench7();
}
console.log("E");
}
manyBench(500000);
Running this took not that long:
❯ time node benchmark7.js
S
E
node benchmark7.js 2.82s user 0.02s system 99% cpu 2.845 total
That’s for 500,000 times though, so each benchmark run takes about 0.056ms on my low-end PC (Ryzen 5 Pro 3400GE). That’s over 3.7M times faster.
And before anyone mentions it: yes, any modern compiler will optimize the whole benchmark away since no useful output or calculation is done. I am not sure how much Node.js (resp. the V8 engine) will remove. Making the code less do-nothing-like and taking the number of loops from the command line did not increase the run time significantly beside what I would have expected from the additional code, so I concluded that the code is executed as-is and parts have not been optimized away.
This Beat Saber map is a lot of fun to play: