From: Erik W. <om...@cs...> - 2000-12-04 09:11:43
|
A common optimization is to try to keep stuff in cache. The current scheduler ignores this. A higher performance version (possibly a later generation of the primary one) might attempt to optimize certain cases by ignoring the standard execution flow in order to force all the elements of the same type to run one after another. In the mixer example, that means having the alsasrc run all in one go without actually switching, putting 16 buffers in the 16 output pens. Then it would switch to the first EQ, then the second and third, etc. Next it runs all 16 gains through, and finally gets the end mixer involved. This optimizes code cache footprint within the timespan of one iteration (typically a millisecond, so a rather significant amount of time cache-wise). This is especially useful when you really do have elements with large cache footprints, like a complex filter with a large dataset. Erik Walthinsen <om...@cs...> - Staff Programmer @ OGI Quasar project - http://www.cse.ogi.edu/DISC/projects/quasar/ Video4Linux Two drivers and stuff - http://www.cse.ogi.edu/~omega/v4l2/ __ / \ SEUL: Simple End-User Linux - http://www.seul.org/ | | M E G A Helping Linux become THE choice _\ /_ for the home or office user |