📄 kinosearch_indexer.plx
字号:
#!/usr/bin/perluse strict;use warnings;use lib 'indexers';use Getopt::Long;use Cwd qw( getcwd );use BenchmarkingIndexer;# verify that we're running from the right directory;my $working_dir = getcwd;die "Must be run from benchmarks/" unless $working_dir =~ /benchmarks\W*$/;# index all docs and run one iter unless otherwise spec'dmy ( $num_reps, $max_to_index, $increment, $store, $build_index );GetOptions( 'reps=s' => \$num_reps, 'docs=s' => \$max_to_index, 'increment=s' => \$increment, 'store=s' => \$store, 'build_index=s' => \$build_index,);$num_reps = 1 unless defined $num_reps;my $bencher = BenchmarkingIndexer::KinoSearch->new( docs => $max_to_index, increment => $increment, store => $store,);if ($build_index) { my ( $count, $secs ) = $bencher->build_index; print "docs: $count elapsed: $secs\n"; exit;}else { $bencher->start_report; my @times; for my $rep ( 1 .. $num_reps ) { # spawn an index-building child process my $command = "$^X "; # try to figure out if this program was called with -Mblib for (@INC) { next unless /\bblib\b/; # propagate -Mblib to the child $command .= "-Mblib "; last; } $command .= "$0 --build_index=1 "; $command .= "--docs=$max_to_index " if $max_to_index; $command .= "--store=$store " if $store; $command .= "--increment=$increment " if $increment; my $output = `$command`; # extract elapsed time from the output of the child $output =~ /^docs: (\d+) elapsed: ([\d.]+)/ or die "no match: '$output'"; my $docs = $1; my $secs = $2; push @times, $secs; $bencher->print_interim_report( rep => $rep, secs => $secs, count => $docs, ); } $bencher->print_final_report(\@times);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -