I have a real C64 (along with a MSSIAH cartridge to make a nice synth), but rarely have the time or space to tinker with it.
I have a real C64 (along with a MSSIAH cartridge to make a nice synth), but rarely have the time or space to tinker with it.
He talked about how back in the early days ram and cpu was pretty much equal in clock. Thus if you could fit your program in ram, you could calculate how fast your program would run based on how many instructions you used to do things.
These days the cpu is many multiples fasters than ram, and thus cache misses is these days what disk access was back then. And because of how the cpu is now multiple cores, pipelines, and multiple tiers of cache, you can't simply sit down and step through the code to look for instruction bottle necks.
Never mind the layers upon layers of libs and whatsnot sitting between your program and the hardware.
Even games consoles are like this now, as they have turned into multimedia gateways. The last generation of consoles that came close was perhaps the PS2 and Gamecube (the Xbox was more a stripped down PC than a games console, and likely started the trend leading us to the present day).
That's exactly how I started programming, as a child, on a Z80 based system.
Not "pretty much". On most early system they were clocked exactly the same. That includes things like the C64 and th Amiga, where there was no cache on the basic models (on Amiga models with 68020 or above there was some cache).
On the C64 in particular, timing things to the clock cycle was essential for some demo effects. E.g. if you used a hardware sprite, it'd "cost" the CPU access to RAM for two clock cycles per scanline that you had to account for if you wanted certain effects to work, for example.