📄 mapreporter
字号:
#! /usr/bin/perl#================================================================# mapreporter# Measure elapsed time of map utilities#================================================================use strict;use warnings;use Time::HiRes qw(gettimeofday);use constant { RECNUM => 1000000, TESTCOUNT => 20, REMOVETOP => 2, REMOVEBOTTOM => 8,};my @commands = ( "./maptest tcmap " . RECNUM, "./maptest tctree " . RECNUM, "./maptest stlmap " . RECNUM, "./maptest stlmmap " . RECNUM, "./maptest stlset " . RECNUM, "./maptest gnuhash " . RECNUM, "./maptest ggldh " . RECNUM, "./maptest gglsh " . RECNUM, "./maptest tcmap -rd " . RECNUM, "./maptest tctree -rd " . RECNUM, "./maptest stlmap -rd " . RECNUM, "./maptest stlmmap -rd " . RECNUM, "./maptest stlset -rd " . RECNUM, "./maptest gnuhash -rd " . RECNUM, "./maptest ggldh -rd " . RECNUM, "./maptest gglsh -rd " . RECNUM, );my @table;foreach my $command (@commands){ system("sync ; sync"); my @result; for(my $i = 0; $i < TESTCOUNT; $i++){ my $stime = gettimeofday(); system("$command >/dev/null 2>&1"); $stime = gettimeofday() - $stime; printf("%s\t%d\t%0.5f\n", $command, $i + 1, $stime); push(@result, $stime); } @result = sort { $a <=> $b } @result; for(my $i = 0; $i < REMOVETOP; $i++){ shift(@result); } for(my $i = 0; $i < REMOVEBOTTOM; $i++){ pop(@result); } my $sum = 0; foreach my $result (@result){ $sum += $result; } my $avg = $sum / scalar(@result); push(@table, [$command, $avg]);}printf("\n\nRESULT\n");foreach my $row (@table){ printf("%s\t%0.5f\n", $$row[0], $$row[1]);}printf("\n");# END OF FILE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -