While moving some of my projects from old cygwin box to the tiny, ubuntu-powered asus-eee I noticed some weird stuff: Apparently the same project, compiled with "fresh" sdk/libs yields ~ 30% slower executables.
I am not sure if this has anything to do with platforms or sdk/libs versions..
(the cygwin box has ~ 1 year old version of the sdk and the libs)
Does anyone have any ideas?
In case anyone wants to investigate, the link below has the source to opentyrian sdl port, which seems to "prefer" to be built under 1 year old cygwin-based sdk rather than fresh ubuntu-powered toolchain:
http://www.dcemu.co.uk/vbulletin/showth ... 87&page=10
Is PSPSDK/libs getting slower?
Well, of course nobody slowed things down on purpose. It's most likely that a minor change in compiler or stack layout is causing slight differences in caching behavior... ie. moving things around slightly can affect performance pretty badly depending on your code, becuase you'll get different access patterns in the icache and dcache and those can affect performance pretty badly. I guess you could profile it to try to pinpoint it further.
-
- Posts: 23
- Joined: Sat Nov 25, 2006 5:53 am
Actually. with something like LUA, the cache is probably being thrashed all to hell anyhow, so it probably doesn't matter how you organise you code or data.deniska wrote:Well, the beauty of using frameworks like SDL or lua is that you don't have to worry too much about caching patterns and other low level stuff of this sort..
perhaps, there is a need for a benchmark program, which is bundled with the toolchain or particular libraries...
And SDL doesn't somehow magicaly remove the need to be carefull how you data is organised either.
If you're using the real time clock you can add microseconds everywhere it
isn't used, and you have a one millionth of a second timer still independent of your program, so it can run benchmarks itself.
It might be useful if you troubleshoot a particular library that you can swap with an older version.
I have had a similar problem for nearly a year now that requires me to keep
two environments set up, in that the output of this algo:
http://personal.inet.fi/cool/jjlammi/rscalc.c
becomes incorrect when compiled with a toolchain version that is too late.
Could be maths.c, but too lazy to try swapping anything.
isn't used, and you have a one millionth of a second timer still independent of your program, so it can run benchmarks itself.
It might be useful if you troubleshoot a particular library that you can swap with an older version.
I have had a similar problem for nearly a year now that requires me to keep
two environments set up, in that the output of this algo:
http://personal.inet.fi/cool/jjlammi/rscalc.c
becomes incorrect when compiled with a toolchain version that is too late.
Could be maths.c, but too lazy to try swapping anything.
If not actually, then potentially.