|
|
And now for some speed tuning.
A simple way to measure the program's speed is to count how many frames
per minute it can render. So, set it to 320x480 so it's moderately fast
[on this ancient single-core 32-bit 1.5 GHz CPU] and count.
After fixing the stupid bug: ~24 frames/minute.
Changed array indexing from tuples to integers: ~24 frames/minute.
Merged the four arrays into one interleaved array: ~26 frames/minute.
[I'm thinking this might improve cache behaviour slightly... but
apparently not much. Or just the cache isn't the bottleneck.]
Removed array bounds checks: ~27 frames/minute.
Removed adaptive time step: ~80 frames/minute.
[Well there's a surprise. Pitty the frames look awful...]
Added adaptive time step within RK4 as per Scott's suggestion: ~1
frame/minute.
[Ah, but now the "error" is being calculated in a totally different way,
so the error tolerance required to get a good image may have changed.
What happens if I use a less strict tolerance?]
Turned down error bound: ~68 frames/minute.
[I made the maximum permissible error 10,000x larger, and the images
still come out looking flawless. But they render vastly faster...!]
Post a reply to this message
|
|