Take the 2-minute tour ×  It's necessary process a big array of
numbers (~1 Mb) in real time with a function e.g. void
processData(char* data).  There following test was runned on the
target platform:  int j = 10;  with the same data every time. It
showed the following result:    1. 1st run takes ~22.5ms   2.
2nd run and others take ~12,5ms  In my opinion it can be caused
by the fact that on the 2nd run data is already in processor
cache, thus it works much faster.  The problem: in real case,
data will be every time different.  Is there any way to make a
kind of "preload" of data to cache?  share|improve this question
You have to pay for memory bandwidth/latency at least once when
you access previously uncached data, so in general it makes no
overall difference if you load it via prefetch instructions or
via load instructions. –  Paul R May 6 '12 at 10:30 I can't see
it being a good idea to preload the contents manually unless you
have spare CPU cycles at all times except all of a sudden you
need to run your