posix_fadvise(fd, 0, s.st_size, POSIX_FADV_DONTNEED); gettimeofday(&begin, NULL); base = (char*)mmap(0, s.st_size, PROT_READ, MAP_SHARED, fd, 0); readall(fd, buffer); visitall(base, s.st_size); gettimeofday(&end, NULL); cout<<"user read time used:"<<int(get_elapse_time(&begin, &end))<<" ms"<<endl; munmap(base, s.st_size); posix_fadvise(fd, 0, s.st_size, POSIX_FADV_DONTNEED); base = (char*)mmap(0, s.st_size, PROT_READ, MAP_SHARED, fd, 0); gettimeofday(&begin, NULL); visitall(base, s.st_size); gettimeofday(&end, NULL); cout<<"sequntial page fault time used:"<<int(get_elapse_time(&begin, &end))<<" ms"<<endl; munmap(base, s.st_size); posix_fadvise(fd, 0, s.st_size, POSIX_FADV_DONTNEED); gettimeofday(&begin, NULL); base = (char*)mmap(0, s.st_size, PROT_READ, MAP_SHARED|MAP_POPULATE, fd, 0); gettimeofday(&end, NULL); cout<<"map populate time used:"<<int(get_elapse_time(&begin, &end))<<" ms"<<endl; munmap(base, s.st_size); posix_fadvise(fd, 0, s.st_size, POSIX_FADV_DONTNEED); gettimeofday(&begin, NULL); base = (char*)mmap(0, s.st_size, PROT_READ, MAP_SHARED|MAP_LOCKED, fd, 0); gettimeofday(&end, NULL); cout<<"map locked time used:"<<int(get_elapse_time(&begin, &end))<<" ms"<<endl; munmap(base, s.st_size); posix_fadvise(fd, 0, s.st_size, POSIX_FADV_DONTNEED); gettimeofday(&begin, NULL); base = (char*)mmap(0, s.st_size, PROT_READ, MAP_SHARED, fd, 0); posix_fadvise(fd, 0, s.st_size, POSIX_FADV_WILLNEED);