On Mon, May 11, 2009 at 12:43 PM, Tim Soderstrom <[email protected]> wrote: > > Right so the question is - what is more important to cache in L1/L2/L3 - > Drizzle or the data it is operating on? I'm thinking the latter. Does > unrolling loops really help all that much if the data we need to work on > isn't in the cache? If the code footprint is smaller, that means we can put > more data into cache. Besides, it's harder to control the caching of data (I > would think) than controlling the code foot-print. > It is important to remember that on any relatively modern CPU there are separate caches for code, data, and memory lookups. This is just one of the reasons that micro benchmarks are interesting and do tell part of the story, there is so much going on in the CPU (the various caches, instruction reordering, branch prediction, and pipelining to name a few!) that they are just as often deceiving. For example, picking the microbench shows that 'the best way to do a memcpy' is 50% faster than the next best way could be relegated completely useless (as far as time elapsed goes) by getting pipelined into oblivion.
I'm mainly just wanting to reemphasie the importance of making performance decisions based on the results of actual usage scenarios inside of Drizzle. -Nathan _______________________________________________ Mailing list: https://launchpad.net/~drizzle-discuss Post to : [email protected] Unsubscribe : https://launchpad.net/~drizzle-discuss More help : https://help.launchpad.net/ListHelp

