36
edits
m (→Working On) |
m (→Working On) |
||
Line 32: | Line 32: | ||
** Tests | ** Tests | ||
*** cached vs uncached access in memory | *** cached vs uncached access in memory | ||
*** how long does changing thread priority take? | *** how long does changing thread priority take? 9-10us. Negiligible. | ||
*** how long does retrieving thread priority take? | *** how long does retrieving thread priority take? 5-7us. | ||
*** how long do different length MS reads take? done. 1B = 1KB = 2.5ms. 2KB = 3.5ms. 10Kb = 10ms. The more, the more efficient. | *** how long do different length MS reads take? done. 1B = 1KB = 2.5ms. 2KB = 3.5ms. 10Kb = 10ms. The more, the more efficient. | ||
**** Wrong. Fread already caches reads. I was testing it wrong (reopening files). 1b = 5us. 1KB = 1ms. 2KB = 2ms. There's a weird gap between 6-9KB where the time stays the same. Not sure. In general, no advantage to reading more. | |||
*** how much reading is done by MP3 rendering/movie playback? How much will we need to cache? done. Reads chunks of 15-25KB preceded by small 4KB reads. Whole MP3 loads are a problem (200KB+). | *** how much reading is done by MP3 rendering/movie playback? How much will we need to cache? done. Reads chunks of 15-25KB preceded by small 4KB reads. Whole MP3 loads are a problem (200KB+). | ||
*** Check fseek's time. | *** Check fseek's time. About 1ms normally. To the end of the file is much more - 3 to 7ms. | ||
*** how many ticks per second? Can we do it more efficiently than SDL? done. 1,000,000. Yes and we did. Getting time struct is wasteful. Went down from 9-14us to 1-2us. | *** how many ticks per second? Can we do it more efficiently than SDL? done. 1,000,000. Yes and we did. Getting time struct is wasteful. Went down from 9-14us to 1-2us. | ||
** Improve memcpy: alignment, rotation | ** Improve memcpy: alignment, rotation | ||
*** Possibly use VFPU's cache for even better performance. | *** Possibly use VFPU's cache for even better performance. | ||
** Caching of stream | ** Caching of stream | ||
*** Implement cache that reads while other threads don't (mutex) and fills up memory with file data. First stage will be like PS2: just read ahead. Done. | *** Implement cache that reads while other threads don't (mutex) and fills up memory with file data. First stage will be like PS2: just read ahead. Done. | ||
*** Play with cache sizes to find the best default one. | **** Actually with the new tests this is useless. It will be useful though to have other-thread read ahead cache. | ||
*** Play with cache sizes to find the best default one. Nope. Get rid of basic cache. | |||
** No More SDL! | ** No More SDL! | ||
*** Improve SDL audio output. done. | *** Improve SDL audio output. done. |
edits