亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? test-exmap.pl

?? 內存管理工具Exmap。該工具比 ps 或 top 更精確
?? PL
字號:
#!/usr/bin/perl## (c) John Berthels 2005 <jjberthels@gmail.com>. See COPYING for license.#use strict;use warnings;use Test::More tests => 159;use constant PAGE_SIZE => 4096;use_ok('Exmap');my $UTILDIR = "../utils";$ENV{LD_LIBRARY_PATH} .= ":$UTILDIR";my $SA_EXE = "$UTILDIR/sharedarray";my $SA_LIB = "$UTILDIR/libsharedarray.so";my $MI_EXE = "$UTILDIR/mapit";my $MI_DAT = "./mapit.dat";my %SA_SYMBOLS = (		  donttouch => {				resident_fraction => 0,				private => 1,			       },		  readme => {			     resident_fraction => 1,			     private => 0,			    },		  writeme => {			      resident_fraction => 1,			      private => 1,			     },		  readhalf => {			       resident_fraction => 0.5,			       private => 0,			      },		  writehalf => {				resident_fraction => 0.5,				private => 1,			       },		 );foreach my $sym (keys %SA_SYMBOLS) {    $SA_SYMBOLS{"uninit_$sym"} = $SA_SYMBOLS{$sym};}my $NUM_INSTANCES = 10;# These need to match sharedarray.[ch] (ok, could read them from there)my $NUM_ARRAYS = 10;my $ARRAY_SIZE = 100 * PAGE_SIZE;ok(-x $SA_EXE, "can find $SA_EXE executable");ok(-f $SA_LIB, "can find $SA_LIB library");my @fhs = start_instances($SA_EXE, $NUM_INSTANCES);push @fhs, start_instances($MI_EXE, $NUM_INSTANCES);# ------------------------------------------------------------# Load the datamy $exmap = Exmap->new;ok($exmap, "can create instance");is($exmap->num_procs, 0, "zero processes at start");ok($exmap->load, "can load");my $num_procs = $exmap->num_procs;ok($num_procs > 0, "some processes after load");my @procs = grep { $_->exe_name && $_->exe_name =~ /$SA_EXE$/ } $exmap->procs;is(scalar @procs, $NUM_INSTANCES, "can find all our procs");my $proc = $procs[0];my $sizes = $proc->sizes;ok($sizes, "can get sizes");ok($sizes->{vm} > $NUM_ARRAYS * $ARRAY_SIZE, "image is big enough");my $ps_size = get_pid_size_from_ps($proc->pid);is($sizes->{vm}, $ps_size, "exmap info matches ps output");ok($sizes->{resident} > 0, "nonzero resident size");ok($sizes->{eff_resident} > 0, "nonzero effective size");ok($sizes->{eff_resident} < $sizes->{resident},   "effective is smaller than resident");my @files = $exmap->files;ok(@files > 0, "can find some resident file");# This is slightly evil. SA_LIB is a path beginning ../# which will happily match as a regexp...@files = grep { $_->name =~ /$SA_LIB$/ } @files;is(scalar @files, 1, "the file is only listed once");my $file = shift @files;ok($file->is_elf, "file recognised as an elf file");# All our procs should be mapping our shared libmy @procs_for_file = $file->procs;is(scalar @procs_for_file, $NUM_INSTANCES, "right number of procs for file");foreach my $proc (@procs_for_file) {    ok($proc->exe_name =~ /$SA_EXE$/, "each proc mapping lib is one of ours");}foreach my $proc (@procs) {    $sizes = $proc->sizes($file);    my $arrays_size = $NUM_ARRAYS * $ARRAY_SIZE;    my $delta = abs($sizes->{vm} - $arrays_size) / $arrays_size;    # Not exact, because there will be some function code etc.    ok($delta < 0.01, "Shared lib has correct size in each proc [$arrays_size != $sizes->{vm}]");}my $text = $file->elf->section_by_name(".text");ok($text, "can find text section");ok($text->size > 0, "text section has nonzero size");my @sizes = $procs[0]->elf_range_sizes($file,				       $text->mem_range);is(scalar @sizes, 1, "one size returned for one range");is(2 * $text->size, $sizes[0]->{resident},   "lib text is resident and mapped twice (!)");my $bss = $file->elf->section_by_name(".bss");ok($bss, "can find bss section");my $data = $file->elf->section_by_name(".data");ok($data, "can find data section");is($data->size, $bss->size, "data and bss sizes the same");@sizes = $procs[0]->elf_range_sizes($file, $data->mem_range);is(scalar @sizes, 1, "one size returned for one range");my @bss_sizes = $procs[0]->elf_range_sizes($file, $bss->mem_range);is(scalar @bss_sizes, 1, "one size returned for one bss range");my $delta = $sizes[0]->{resident} - $bss_sizes[0]->{resident};ok($delta <= PAGE_SIZE, "data and bss resident are within a page");# Find how many arrays-worth will be resident in .bssmy @bss_syms = grep { $_ =~ /uninit_/ } keys %SA_SYMBOLS;my $resident_number_of_arrays = 0;foreach my $sym (@bss_syms) {    $resident_number_of_arrays += $SA_SYMBOLS{$sym}->{resident_fraction};}my $arrays_size = $ARRAY_SIZE * $resident_number_of_arrays;foreach my $proc (@procs) {    @sizes = $proc->elf_range_sizes($file, $bss->mem_range);    is(scalar @sizes, 1, "one size returned for one range");    my $resident_size_for_file_in_proc = $sizes[0]->{resident};    is($resident_size_for_file_in_proc, $arrays_size,       "correct resident size in bss")}foreach my $sym_name (keys %SA_SYMBOLS) {    my $sym = $file->elf->symbol_by_name($sym_name);    ok($sym, "can find symbol $sym_name");    is($sym->size, $ARRAY_SIZE, "symbol $sym_name has correct size");    @sizes = $procs[0]->elf_range_sizes($file, $sym->range);    is(scalar @sizes, 1, "one size returned for one range");    my $resident_size = $sizes[0]->{resident};    is($resident_size,       $SA_SYMBOLS{$sym_name}->{resident_fraction} * $ARRAY_SIZE,       "symbol $sym_name has correct resident size");    # Uninitialised space which is only read appears to be shared.    # This is cool from a memusage point of view, but it means that it is    # shared among nearly all running procs to varying degrees. So we can't    # really account for it.    next if ($sym_name =~ /^uninit_read/);    @sizes = $procs[0]->elf_range_sizes($file, $sym->range);    is(scalar @sizes, 1, "one size returned for one range");    my $eff_resident_size = $sizes[0]->{eff_resident};    my $expected_esize	= $SA_SYMBOLS{$sym_name}->{resident_fraction} * $ARRAY_SIZE;    if (!$SA_SYMBOLS{$sym_name}->{private}) {	# Shared...	$expected_esize /= $NUM_INSTANCES;    }    # Floating pt calc, so avoid == test    my $delta = abs($eff_resident_size - $expected_esize);    ok($delta < 0.001,       "$sym_name has correct esize [$eff_resident_size - $expected_esize]");}# Test non-elf maps@procs = grep { $_->exe_name && $_->exe_name =~ /$MI_EXE$/ } $exmap->procs;is(scalar @procs, $NUM_INSTANCES, "can find all our mapit procs");@files = $exmap->files;ok(@files > 0, "can find some resident files");@files = grep { $_->name =~ /$MI_DAT$/ } @files;is(scalar @files, 1, "$MI_DAT file is only listed once");$file = shift @files;ok(!$file->is_elf, "$MI_DAT isn't an elf file");my $mi_data_size = -s $MI_DAT;ok($mi_data_size > 0, "$MI_DAT isn't empty");foreach my $proc (@procs) {    $sizes = $proc->sizes($file);    is($sizes->{vm}, $mi_data_size, "correct data file size");    is($sizes->{resident}, $mi_data_size, "whole data file is resident");    is($sizes->{eff_resident}, $mi_data_size / $NUM_INSTANCES,       "data file is shared between instances");        }stop_instances(@fhs);exit 0;# ------------------------------------------------------------sub stop_instances{    my @fhs = shift;    foreach my $fh (@fhs) {	print $fh "\n";	close $fh or die("problem stopping instance : $!");    }    return 1;}sub start_instances{    my $exe = shift;    my $num_instances = shift;    my @fhs;    while ($num_instances-- > 0) {	my $fh;	open ($fh, "|$exe")	    or die("Can't start [$exe] : $!");	push @fhs, $fh;    }    return @fhs;}sub get_pid_size_from_ps{    my $pid = shift;    my @lines = `ps -e -o pid,vsz`;    chomp @lines;    @lines = grep { /\s*$pid\s/ } @lines;    return undef unless scalar @lines == 1;    my ($pspid, $size) = $lines[0] =~ /\s*(\d+)\s+(\d+)$/;    return $size * 1024;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产尤物一区二区| 韩国午夜理伦三级不卡影院| 国产欧美日韩激情| 日韩一区和二区| 91精品国产91久久久久久最新毛片 | 欧美一区二区三区视频| 欧美系列一区二区| 欧美日韩一区二区在线观看视频| 91国在线观看| 欧美男男青年gay1069videost | 激情五月婷婷综合| 国产一区二区三区电影在线观看| 国产一区二区剧情av在线| 国产成人亚洲综合色影视| 懂色av一区二区在线播放| www.日韩精品| 欧美视频精品在线观看| 欧美一区二区网站| 日韩精品一区二区三区老鸭窝| 精品国产区一区| 亚洲欧洲另类国产综合| 亚洲在线观看免费视频| 麻豆久久久久久| 91亚洲精品乱码久久久久久蜜桃 | 中文一区在线播放| 亚洲精品五月天| 免费人成精品欧美精品| 成人va在线观看| 日本国产一区二区| 337p日本欧洲亚洲大胆色噜噜| 首页欧美精品中文字幕| 麻豆91在线看| 色婷婷综合久久| 日韩精品在线一区二区| 亚洲日穴在线视频| 精品一区二区三区不卡 | 精品一区二区三区视频| 成人免费高清视频在线观看| 91成人国产精品| 国产午夜亚洲精品羞羞网站| 亚洲精品成人a在线观看| 久久99精品久久久久久动态图| 92精品国产成人观看免费 | 国产欧美综合色| 午夜精品国产更新| 91色porny| 精品国产一区二区三区久久影院| 亚洲男同性视频| 国产东北露脸精品视频| 777亚洲妇女| 亚洲手机成人高清视频| 欧美综合视频在线观看| 欧美一区二区三区四区在线观看| 国产精品电影院| 精品一二三四在线| 欧美久久免费观看| 樱桃国产成人精品视频| 成人国产精品免费网站| 欧美精品一区二区在线观看| 日韩av网站免费在线| 欧美少妇性性性| 亚洲欧美日韩人成在线播放| a级精品国产片在线观看| 久久蜜桃av一区精品变态类天堂| 日日嗨av一区二区三区四区| 欧美日韩国产另类不卡| 亚洲自拍偷拍图区| 日本道免费精品一区二区三区| 久久久av毛片精品| 国产中文字幕一区| 欧美成人精精品一区二区频| 免费成人性网站| 精品国产三级电影在线观看| 久草中文综合在线| 亚洲精品一区二区三区在线观看| 美女网站在线免费欧美精品| 精品理论电影在线观看| 久久se精品一区精品二区| 日韩欧美的一区二区| 美女一区二区视频| 久久久久国色av免费看影院| 国产黄色精品网站| 国产欧美精品一区二区色综合朱莉| 国产一区二区三区免费| 国产日韩av一区| 91在线一区二区| 一区二区在线免费| 欧美肥妇bbw| 久久成人免费日本黄色| 日本一区二区三区电影| a在线播放不卡| 亚洲va欧美va天堂v国产综合| 欧美高清dvd| 国产福利精品一区二区| 亚洲欧美色综合| 欧美日韩国产综合一区二区| 久久97超碰色| 国产午夜亚洲精品不卡| 一本一道综合狠狠老| 日韩精品欧美精品| 久久精品视频在线免费观看| 99精品1区2区| 日韩av高清在线观看| 国产日韩欧美不卡在线| 欧美视频一区二区三区四区 | 精品国产一二三| 成人h动漫精品一区二区| 一个色在线综合| 日韩美女主播在线视频一区二区三区| 国产乱子伦一区二区三区国色天香| 国产精品污www在线观看| 欧美精品乱码久久久久久| 国产精品一级二级三级| 亚洲一区二区在线视频| 久久青草欧美一区二区三区| 欧美在线综合视频| 国产成人h网站| 丝袜美腿一区二区三区| 中文字幕在线免费不卡| 欧美精品vⅰdeose4hd| 岛国一区二区三区| 蜜臀a∨国产成人精品| 亚洲欧美另类图片小说| 亚洲精品久久久蜜桃| 91在线一区二区| 美国欧美日韩国产在线播放| 国产精品丝袜91| 精品美女一区二区三区| 欧美在线一区二区| 波多野结衣在线一区| 青青国产91久久久久久| 亚洲麻豆国产自偷在线| 国产欧美一区二区三区鸳鸯浴 | 中文字幕亚洲不卡| 精品久久久久久久久久久久包黑料| 91黄色免费看| 91亚洲精品久久久蜜桃网站 | 91精品国产综合久久福利| 91年精品国产| 成人av在线资源网站| 国产精品一区二区黑丝| 韩国成人福利片在线播放| 亚洲国产精品人人做人人爽| 亚洲手机成人高清视频| 中文字幕一区av| 国产精品久久综合| 国产精品进线69影院| 国产精品久久久爽爽爽麻豆色哟哟| 精品国产乱码久久久久久蜜臀| 在线电影院国产精品| 欧美日韩日日骚| 欧美亚洲一区二区三区四区| 在线国产亚洲欧美| 91成人免费网站| 欧美日韩一区二区在线观看视频| 在线看国产日韩| 3d动漫精品啪啪| 欧美大片日本大片免费观看| 精品国产精品网麻豆系列| 日韩欧美在线综合网| 91精品国产乱| 337p粉嫩大胆色噜噜噜噜亚洲| 国产婷婷色一区二区三区四区| 久久久一区二区| 国产精品久久久一区麻豆最新章节| 国产精品久久久久久久裸模 | 欧美精品 日韩| 日韩午夜在线观看视频| 精品国产一区二区三区久久影院| 久久久青草青青国产亚洲免观| 久久精品男人天堂av| 国产精品理伦片| 夜夜嗨av一区二区三区四季av| 亚洲一区在线免费观看| 日本欧美韩国一区三区| 国产精品123| 91福利在线观看| 欧美一区二区三区四区视频| 337p日本欧洲亚洲大胆精品| 国产精品传媒在线| 亚洲一区二区五区| 韩国av一区二区三区在线观看| 不卡一区在线观看| 欧美区一区二区三区| 久久色视频免费观看| 亚洲色图一区二区三区| 奇米四色…亚洲| 国产高清精品久久久久| 91久久精品一区二区二区| 精品精品国产高清a毛片牛牛| 亚洲天堂网中文字| 久久av资源网| 欧美艳星brazzers| 国产欧美精品一区二区色综合朱莉| 怡红院av一区二区三区| 国产乱码精品一区二区三区忘忧草| 91官网在线免费观看| 久久综合色一综合色88| 天堂午夜影视日韩欧美一区二区| 国产在线一区二区综合免费视频|