File: speed_test

package info (click to toggle)
libparse-mediawikidump-perl 1.0.6-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd, wheezy
  • size: 212 kB
  • ctags: 107
  • sloc: perl: 1,156; xml: 205; sql: 16; makefile: 2
file content (54 lines) | stat: -rw-r--r-- 790 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/perl

use strict;
use warnings;

use Parse::MediaWikiDump;

$SIG{ALRM} = \&progress;

$| = 1;
print '';

my $i = 0;
my $file = shift(@ARGV);

my $num_iter = shift(@ARGV);
$num_iter = 10 unless defined($num_iter);

my $start = time;
my $dump = undef;

alarm(1);

while($i++ < $num_iter) {
	$start = time;

	print "Iteration $i\r";
	$dump = Parse::MediaWikiDump::Pages->new($file);

	while($dump->next) { };

	print "\n";
}

my @times = times;

print $times[0] + $times[1], "\n";

sub progress {
	return unless defined($dump);
	my $elapsed = time - $start;

	$elapsed = 1 if $elapsed == 0;

	print "Iteration $i: ";

	print int($dump->current_byte / $dump->size * 100), "% ";

	my $speed = int($dump->current_byte / $elapsed);

	print $speed, " bytes per second \r";

	alarm(1);
}