⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gen_random.pl

📁 ICS 课程的Lab6
💻 PL
字号:
#!/usr/bin/perl$out_filename = $argv[0];$out_filename = "random.rep" unless $out_filename;$num_blocks = $argv[1];# $num_blocks = 1200 unless $num_blocks;$num_blocks = 2400 unless $num_blocks;$max_blk_size = $argv[2];$max_blk_size = 32768 unless $max_blk_size;#print "Output file: $out_filename\n";#print "Number of blocks: $num_blocks\n";#print "Max block size: $max_blk_size\n";# Create trace# Make a series of malloc()sfor ($i = 0;  $i < $num_blocks; $i += 1) {    $size = int(rand $max_blk_size);    $op = {};    $op->{type} = "a";    $op->{seq} = $i;    $op->{size} = $size;    $total_block_size += $size;    push @trace, $op;}# Insert free()s in proper placesfor ($i = 0;  $i < $num_blocks; $i += 1) {    for ($minval = $i; $minval < $num_blocks + $i; $minval += 1) {        if (($trace[$minval]->{type} eq "a") && ($trace[$minval]->{seq} == $i)) {            last;        }    }    $pos = int(rand($num_blocks + $i - $minval - 1) + $minval + 1);    $op = {};    $op->{type} = "f";    $op->{seq} = $i;    splice @trace, $pos, 0, $op;}# Open output fileopen OUTFILE, ">$out_filename" or die "Cannot create $out_filename\n";# Calculate misc parameters$suggested_heap_size = $total_block_size + 100;$num_ops = 2*$num_blocks;print OUTFILE "$suggested_heap_size\n";print OUTFILE "$num_blocks\n";print OUTFILE "$num_ops\n";print OUTFILE "1\n";for ($i = 0;  $i < 2*$num_blocks; $i += 1) {    if ($trace[$i]->{type} eq "a") {        print OUTFILE "$trace[$i]->{type} $trace[$i]->{seq} $trace[$i]->{size}\n";    } else {        print OUTFILE "$trace[$i]->{type} $trace[$i]->{seq}\n";    }}close OUTFILE;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -