Skip to content

Commit

Permalink
Modernize the data collection programs a bit. Cant
Browse files Browse the repository at this point in the history
  • Loading branch information
rcaputo committed May 7, 2009
1 parent 627fbd8 commit 09e48d4
Show file tree
Hide file tree
Showing 3 changed files with 89 additions and 355 deletions.
217 changes: 0 additions & 217 deletions POE/Queue/Array.pm

This file was deleted.

113 changes: 44 additions & 69 deletions benchmark-size.pl
Expand Up @@ -6,7 +6,13 @@
$|=1;

use lib ".";
use POE::Queue;

my $impl;
BEGIN {
$impl = shift;
eval "use $impl";
die $@ if $@;
}

# The sequence length should be at least as many items as there are
# priorities.
Expand All @@ -23,7 +29,8 @@ sub build_list {

@seq = map { [ $_, $_ ] } (0..($priorities-1));

{ srand(1);
{
srand(1);
my $i = @seq;
while (--$i) {
my $j = int rand($i+1);
Expand All @@ -39,71 +46,39 @@ sub build_list {

build_list($priorities);

# One for each queue implementation.
for my $impl (qw(Array PriorityHeap)) {

my $queue = POE::Queue->new($impl);

### Plain enqueue/dequeue.

my ($begin_usr, $begin_sys) = (times)[0,1];
$queue->enqueue(@$_) for @seq;
my ($cease_usr, $cease_sys) = (times)[0,1];

my $elapsed = ($cease_usr - $begin_usr) + ($cease_sys - $begin_sys);

print( join( "\t",
$priorities,
$impl, "enqueue-plain",
$elapsed/$priorities, # Time per operation.
),
"\n"
);

($begin_usr, $begin_sys) = (times)[0,1];
1 while $queue->dequeue;
($cease_usr, $cease_sys) = (times)[0,1];

$elapsed = ($cease_usr - $begin_usr) + ($cease_sys - $begin_sys);

print( join( "\t",
$priorities,
$impl, "dequeue-plain",
$elapsed/$priorities, # Time per operation.
),
"\n"
);

### Next-priority enqueue/dequeue. The enqueue is actually just a
### plain one, but we get to see the effect of internal data
### structure freeing tradeoffs.

($begin_usr, $begin_sys) = (times)[0,1];
$queue->enqueue(@$_) for @seq;
($cease_usr, $cease_sys) = (times)[0,1];

$elapsed = ($cease_usr - $begin_usr) + ($cease_sys - $begin_sys);

print( join( "\t",
$priorities,
$impl, "enqueue-np",
$elapsed/$priorities, # Time per operation.
),
"\n"
);

($begin_usr, $begin_sys) = (times)[0,1];
1 while scalar(@{$queue->dequeue_next_priority});
($cease_usr, $cease_sys) = (times)[0,1];

$elapsed = ($cease_usr - $begin_usr) + ($cease_sys - $begin_sys);

print( join( "\t",
$priorities,
$impl, "dequeue-np",
$elapsed/$priorities, # Time per operation.
),
"\n"
);
}
my $queue = $impl->new();

### Plain enqueue/dequeue.

my ($begin_usr, $begin_sys) = (times)[0,1];
$queue->enqueue(@$_) for @seq;
my ($cease_usr, $cease_sys) = (times)[0,1];

my $elapsed = ($cease_usr - $begin_usr) + ($cease_sys - $begin_sys);

print(
join(
"\t",
$priorities,
$impl, "enqueue-plain",
$elapsed/$priorities, # Time per operation.
),
"\n"
);

($begin_usr, $begin_sys) = (times)[0,1];
1 while $queue->dequeue_next();
($cease_usr, $cease_sys) = (times)[0,1];

$elapsed = ($cease_usr - $begin_usr) + ($cease_sys - $begin_sys);

print(
join(
"\t",
$priorities,
$impl, "dequeue-plain",
$elapsed/$priorities, # Time per operation.
),
"\n"
);
}

0 comments on commit 09e48d4

Please sign in to comment.