NAME

   Sys::PageCache - handling page cache related on files

INSTALLATION

   To install this module, run the following commands:

       perl Makefile.PL
       make
       make test
       make install

SYNOPSIS

       use Sys::PageCache;

       # determine whether pages are resident in memory
       $r = fincore "/path/to/file";
       printf("cached/total_size=%llu/%llu cached/total_pages=%llu/%llu\n",
              $r->{cached_size}, $r->{file_size},
              $r->{cached_pages}, $r->{total_pages},
          );

       # free cached pages on a file
       $r = fadvise "/path/to/file", 0, 0, POSIX_FADV_DONTNEED;

DESCRIPTION

   Sys::PageCache is for handling page cache related on files.

METHODS

   fincore($filepath:Str [, $offset:Int [, $length:Int]])

     Determine whether pages are resident in memory. $offset and $length
     are optional.

     fincore returns a following hash ref.

         {
            cached_pages => Int, # number of cached pages
            cached_size  => Int, # size of cached pages
            total_pages  => Int, # number of pages if cached whole file
            file_size    => Int, # size of file
            page_size    => Int, # page size on your system
         }

   fadvise($filepath:Str, $offset:Int, $length:Int, $advice:Int)

     Call posix_fadvise(2).

     fadvise returns 1 if success.

   page_size()

     Returns size of page size on your system.

EXPORTS

   fincore

   fadvise

   POSIX_FADV_NORMAL

   POSIX_FADV_SEQUENTIAL

   POSIX_FADV_RANDOM

   POSIX_FADV_NOREUSE

   POSIX_FADV_WILLNEED

   POSIX_FADV_DONTNEED

AUTHOR

   HIROSE Masaaki <hirose31 _at_ gmail.com>

REPOSITORY

   https://github.com/hirose31/Sys-PageCache

     git clone git://github.com/hirose31/Sys-PageCache.git

   patches and collaborators are welcome.

SEE ALSO

   mincore(2), posix_fadvise(2), https://code.google.com/p/linux-ftools/,
   https://github.com/nhayashi/pagecache-tool

LICENSE

   This library is free software; you can redistribute it and/or modify it
   under the same terms as Perl itself.