mem_unix.pm (448B)
1 package mem; 2 3 use Modern::Perl; 4 use POSIX; 5 use Sys::Mmap; 6 use autodie; 7 8 our $os_allocsize = POSIX::sysconf(POSIX::_SC_PAGESIZE); 9 10 sub get_mem { 11 my ($self) = @_; 12 13 my $procfile = "/tmp/citrun.out"; 14 open( my $fh, "<", $procfile ); 15 16 $self->{mem} = ''; 17 mmap( $self->{mem}, 0, PROT_READ, MAP_SHARED, $fh ) or die "mmap: $!"; 18 $self->{size} = length $self->{mem}; 19 20 close $fh; 21 22 # Consumer of /tmp/citrun.out must remove it. 23 unlink $procfile; 24 } 25 26 1;