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.