6 ms·
Oh, you'd be surprised. Run this: 10 TI$="000000":J=.:FORI=0TO900:J=J+1:NEXT:PRINTTI 20 TI$="000000":J%=.:FORI=0TO900:J%=J%+1:NEXT:PRINTTI I get, on VICE in
by classichasclass 5y ago
Oh, you'd be surprised. Run this:
10 TI$="000000":J=.:FORI=0TO900:J=J+1:NEXT:PRINTTI
20 TI$="000000":J%=.:FORI=0TO900:J%=J%+1:NEXT:PRINTTI
I get, on VICE in PAL mode, 212 jiffies and 256 jiffies respectively.
The reason for this nonsense is that Commodore BASIC does the math in floating point, and converts it to integer after the fact. You can speed this up with
20 TI$="000000":J%=.:K%=1:FORI=0TO900:J%=J%+K%:NEXT:PRINTTI
which gives me 244 jiffies, but still slower, because even though K% is now already an integer and it costs "less" since it is now in a variable instead of being converted from BASIC text, it still requires a roundtrip to the floating point accumulator.
Bottom line: always benchmark.
- bonzini 5y agoCool! I did remember benchmarking it, but it's been... a few years :)