To: TechieGuy-alt who wrote (27075 ) 2/1/2001 12:06:12 PM From: pgerassi Read Replies (1) | Respond to of 275872 Dear TG: When a compile takes less than 1/2 the time on a two processor system than a uniprocessor system, the problem is usually traced to cache thrashing. What probably happened is that the working set of the compile process is less than the cache available in one CPU but, when i/o tasks and other OS tasks interrupt the compile process, the working set becomes greater than the cache in the single CPU. In a typical dual system, one CPU spends all of the time handling OS tasks with some left over for compiles. As such it still thrashes the cache less due to the shorter waits between requests (more of them due to two CPUs generating requests) use the critical OS tasks such as disk caching enough to keep it from being evicted from cache. The second CPU spends all of its time in the compile programs and thus, keeps the working set completely within its cache. Thus, it compiles much faster. Both together then do far more than, each one separately. Furthermore, under Linux all memory not used for the OS and running processes is used for caching the disk. This is typically equal to 1/2 to 3/4 of the typical memory configs. My 256MB system, typically has a disk cache of 192MB during kernel compiles. The quickest method to do compiles is not to have X-windows running as it has a large memory footprint. On one client of mine, who has a 1GB Linux box, the cache typically runs over 700MB even, when 12 people are on the system at the same time (some from PCs and some from terminals connected to a multiport serial card (16)). On that system kernel compiles can run completely from the cache (the speed is up to 2x as fast as a system with 1/4th the memory). I hope this clears up your questions on the matter. Pete