Each of these activities leaves its footprint in the cache, thereby destroying data that was potentially needed by other parts of the program.
Interference is reduced at the cost of decreasing predictability.
Various compiler techniques have been developed to reduce interference. These techniques all use a conventional language as a starting point, and can improve certain patterns in the code. They do not structurally solve the problem. More promising approaches are Software Based Partitioning, and the application of compiler directed mappings. None of these techniques comes to the heart of the matter.