Benchmark tool
This commit is contained in:
parent
54fb24d7c3
commit
af48979870
1 changed files with 67 additions and 0 deletions
67
test.pl
Normal file
67
test.pl
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
use threads;
|
||||||
|
use threads::shared;
|
||||||
|
use bytes;
|
||||||
|
use IO::Socket;
|
||||||
|
use strict;
|
||||||
|
|
||||||
|
my @dom = ("seed","bitcoin","sipa","be");
|
||||||
|
|
||||||
|
my $run :shared = 1;
|
||||||
|
|
||||||
|
sub go {
|
||||||
|
my ($idx) = @_;
|
||||||
|
|
||||||
|
my $runs = 0;
|
||||||
|
|
||||||
|
my $sock = IO::Socket::INET->new(
|
||||||
|
Proto => 'udp',
|
||||||
|
PeerPort => 5353,
|
||||||
|
PeerAddr => "127.0.0.1",
|
||||||
|
) or die "Could not create socket: $!\n";
|
||||||
|
|
||||||
|
while($run) {
|
||||||
|
|
||||||
|
my $id = int(rand(65536));
|
||||||
|
my $qr = 0;
|
||||||
|
my $opcode = 0;
|
||||||
|
my $aa = 0;
|
||||||
|
my $tc = 0;
|
||||||
|
my $rd = 0;
|
||||||
|
my $ra = 0;
|
||||||
|
my $z = 0;
|
||||||
|
my $rcode = 0;
|
||||||
|
my $qdcount = 1;
|
||||||
|
my $ancount = 0;
|
||||||
|
my $nscount = 0;
|
||||||
|
my $arcount = 0;
|
||||||
|
my $header = pack('nnnnnn',$id,1*$qr + 2*$opcode + 32*$aa + 64*$tc + 128*$rd + 256*$ra + 512*$z + 4096*$rcode, $qdcount, $ancount, $nscount, $arcount);
|
||||||
|
my $qtype = 1; # A record
|
||||||
|
my $qclass = 1; # IN class
|
||||||
|
my $query = (join("", map { chr(length($_)) . $_ } (@dom,""))) . pack('nn',$qtype,$qclass);
|
||||||
|
my $msg = $header . $query;
|
||||||
|
$sock->send($msg);
|
||||||
|
my $resp;
|
||||||
|
$runs++ if ($sock->recv($resp, 512, 0));
|
||||||
|
|
||||||
|
# $sock->close();
|
||||||
|
}
|
||||||
|
return $runs;
|
||||||
|
}
|
||||||
|
|
||||||
|
my @threads;
|
||||||
|
|
||||||
|
for my $i (0..3) {
|
||||||
|
$threads[$i] = threads->create(\&go, $i);
|
||||||
|
}
|
||||||
|
|
||||||
|
sleep 10;
|
||||||
|
|
||||||
|
$run=0;
|
||||||
|
my $runs = 0;
|
||||||
|
foreach my $thr (@threads) {
|
||||||
|
$runs += $thr->join();
|
||||||
|
}
|
||||||
|
|
||||||
|
print "$runs runs\n";
|
Loading…
Reference in a new issue