On 01.08.2010 11:47, Mattias Gaertner wrote:

the OS file cache

The OS cache already does a great Job:

r...@t40:/home/bernd\ $ sync && echo 3 > /proc/sys/vm/drop_caches

be...@t40:~/lazsvn/lazarus/trunk\ $ time make ide
[...]
real    1m12.491s
user    0m8.653s
sys     0m2.348s

be...@t40:~/lazsvn/lazarus/trunk\ $ time make ide
[...]
real    0m6.127s
user    0m4.752s
sys     0m0.916s

1:12 with a cold cache versus 0:06 when the cache is warm is an impressive difference.

There exists a small tool for linux that tries to speed up file access with an extremely pragmatic but very effective approach by simply permanently monitoring which files are usually read most often by all the user's applications and then as a daemon running on idle priority permanently read all those files in intervals of a few minutes which will ensure that they are always all in the OS file cache.

Lazarus could adopt this idea and could after opening a project during idle time and in reasonable intervals read every file that would also be read by the compiler and linker. Maybe in a certain order that makes sense: first only the directory listings to immediately have all file timestamps, then all compiled units that would be needed (because most source will not have changed since it was compiled the last time) and then after this is done read all source files belonging to the project.

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to