Download the Makefile and mmap-test.c files into a temporary directory for testing. Run: make all The tests should take a few minutes. Please drop me a line if you have questions. I recommend using the o1 and o2 targets (make o1 && make o2). Here are some (old) sample results: % make gcc -O3 -finline-functions -fkeep-inline-functions -funroll-loops -o test-mmap test-mmap.c /usr/bin/time ./test-mmap > /dev/null Beginning tests with file: services Page size: 4096 File read size is the same as the file size Number of iterations: 100000 Start time: 1047013002.412516 Time: 82.88178 Completed tests 82.09 real 2.13 user 68.98 sys gcc -O3 -finline-functions -fkeep-inline-functions -funroll-loops -DDEFAULT_READSIZE=1 -o test-mmap test-mmap.c /usr/bin/time ./test-mmap > /dev/null Beginning tests with file: services Page size: 4096 File read size is default read size: 65536 Number of iterations: 100000 Start time: 1047013085.16204 Time: 18.155511 Completed tests 18.16 real 0.90 user 14.79 sys gcc -O3 -finline-functions -fkeep-inline-functions -funroll-loops -DDEFAULT_READSIZE=1 -DDO_MMAP=1 -o test-mmap test-mmap.c /usr/bin/time ./test-mmap > /dev/null Beginning tests with file: services Page size: 4096 File read size is default read size: 65536 Number of iterations: 100000 Start time: 1047013103.859818 Time: 8.4294203644 Completed tests 7.24 real 0.41 user 5.92 sys gcc -O3 -finline-functions -fkeep-inline-functions -funroll-loops -DDEFAULT_READSIZE=1 -DDO_MMAP=1 -DDO_MMAP_ONCE=1 -o test-mmap test-mmap.c /usr/bin/time ./test-mmap > /dev/null Beginning tests with file: services Page size: 4096 File read size is default read size: 65536 Number of iterations: 100000 Start time: 1047013111.623712 Time: 1.174076 Completed tests 1.18 real 0.09 user 0.92 sys ______________________________________________________________________ seanc at FreeBSD