My C program which uses sorting runs 10x slower the first time than other times. It uses file of integers to sort and even if I change the numbers, program still runs faster. When I restart the PC, the very first time program runs 10x slower. I use time to count the time.
My C program which uses sorting runs 10x slower the first time than other
Share
The operating system holds the data in RAM even if it’s not needed anymore (this is called “caching”), so when the program runs again, it gets all data from there and there’s no disk I/O. Even when you change the data, that change happens in RAM first, and it stays there even after its written to the file.
It doesn’t stay in RAM forever though, mind you. If the memory is needed for something else, the cache is deleted. At that point, a disk access is needed (and it’s cached in RAM again at that point.)
This is why first access after a reboot is always slow; the data hasn’t been cached yet since it was never read from the file.