HIROSE Masaaki > Sys-PageCache-0.01_001 > Sys::PageCache

Download:
Sys-PageCache-0.01_001.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.01_001   Source   Latest Release: Sys-PageCache-0.02

NAME ^

Sys::PageCache - handling page cache related on files

SYNOPSIS ^

    use Sys::PageCache;
    
    # determine whether pages are redident 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 redident 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.

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.

syntax highlighting: