SZ
Size: a a a
SZ
AK
GK
gragory@Gragory-Work ~ $ perl -E 'sub vm{ open my $fh,"<","/proc/$$/status"; print for grep{/VmSize/} <$fh>;} sub bigstr { my $x = "x"x(1024*1024*1024) } vm; bigstr; vm'
VmSize: 1061608 kB
VmSize: 2110188 kB
GK
GK
openat(AT_FDCWD, "/proc/16114/status", O_RDONLY|O_CLOEXEC) = 3
ioctl(3, TCGETS, 0x7ffd0bf1da30) = -1 ENOTTY (Неприменимый к данному устройству ioctl)
lseek(3, 0, SEEK_CUR) = 0
newfstatat(3, "", {st_mode=S_IFREG|0444, st_size=0, ...}, AT_EMPTY_PATH) = 0
read(3, "Name:\tperl\nUmask:\t0022\nState:\tR "..., 8192) = 1120
read(3, "", 8192) = 0
write(1, "VmSize:\t 1061608 kB\n", 20VmSize: 1061608 kB
) = 20
close(3) = 0
mmap(NULL, 1073745920, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f046eb1c000
getpid() = 16114
openat(AT_FDCWD, "/proc/16114/status", O_RDONLY|O_CLOEXEC) = 3
ioctl(3, TCGETS, 0x7ffd0bf1da30) = -1 ENOTTY (Неприменимый к данному устройству ioctl)
lseek(3, 0, SEEK_CUR) = 0
newfstatat(3, "", {st_mode=S_IFREG|0444, st_size=0, ...}, AT_EMPTY_PATH) = 0
read(3, "Name:\tperl\nUmask:\t0022\nState:\tR "..., 8192) = 1120
read(3, "", 8192) = 0
write(1, "VmSize:\t 2110188 kB\n", 20VmSize: 2110188 kB
) = 20
close(3)
GK
GK
GK
#include <stdlib.h>
#include <unistd.h>
int main()
{
write(STDOUT_FILENO, "1", 1);
char *data = malloc(1 << 30);
write(STDOUT_FILENO, "2", 1);
char *data2 = malloc(10);
write(STDOUT_FILENO, "3", 1);
free(data);
write(STDOUT_FILENO, "4", 1);
free(data2);
write(STDOUT_FILENO, "5", 1);
return 0;
}
write(1, "1", 11) = 1
brk(NULL) = 0x55bf3afe6000
brk(0x55bf3b007000) = 0x55bf3b007000
mmap(NULL, 1073745920, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc89c5d6000
write(1, "2", 12) = 1
write(1, "3", 13) = 1
munmap(0x7fc89c5d6000, 1073745920) = 0
write(1, "4", 14) = 1
write(1, "5", 15) = 1
exit_group(0) = ?
+++ exited with 0 +++
SZ
$ perl -e ' print $$; sub mem {print $_[0] . (grep /$$/, qx( ps -eo pid,vss,comm))[0]} mem++$i; my $var = "xxx" x 10**8; mem++$i; push @arr, "$_ $var" for 1..10; mem++$i; undef @arr; mem++$i'
SZ
SZ
GK
GK
SZ
SZ
AK
AK
GK
gragory@Gragory-Work ~ $ perl -e ' print $$; sub mem {print $_[0] . (grep /$$/, qx( ps -eo pid,vsz,comm))[0]} mem++$i; my $var = "xxx" x 10**8; mem++$i; push @arr, "$_ $var" for 1..10; mem++$i; undef @arr; mem++$i'
16272116272 305868 perl
216272 598840 perl
316272 3528560 perl
416272 598840 perl
SZ