jinyedge's note
{http://www.jinyedge.pe.kr}
Hi, this is jinyedge. I'm a software developer.
I hope you can find some useful information
in my homepage.
jinyedge at gmail.com
Since 2001.12.05
|
|
| Subj: Perl, Proxy server performance test. |
|
|
Mtime: 2010-02-25 20:25:11 |
|
|
use strict;
use Win32::OLE;
use Time::HiRes qw /usleep/;
use Win32::Registry;
use POSIX qw/strftime/;
#----------------------------------------------------------------
# Usage: perf-test.pl [addr] [port]
# ex) perf-test.pl 192.168.0.1 8080
#
#----------------------------------------------------------------
# Global.
my @urls = qw(
www.spamtitan.com
www.boards.ie
www.daft.ie
www.msn.com
www.google.com
www.google.ie
www.advertiser.ie
www.blooomberg.com
www.ibm.com
www.sun.com
www.redhat.com
www.cpan.org
www.perl.com
www.slashdot.org
www.discoverireland.com
www.gov.ie
www.bbc.co.uk
espn.go.com
www.skysports.com
www.independent.ie
www.rte.ie
www.Ireland.com
www.cnn.com
news.google.ie
www.irishtimes.com
www.met.ie
weather.yahoo.com
www.wunderground.com
news.bbc.co.uk
www.msnbc.msn.com
www.weather.com
www.askmoby.com
);
my $ha;
$HKEY_CURRENT_USER->Open("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"
, $ha) || die $!;
my $IE = Win32::OLE->new("InternetExplorer.Application");
$IE->{visible} = 1;
#----------------------------------------------------------------
sub get_page{
my $url = shift;
$IE->Navigate($url);
my $cnt = 0;
while($IE->busy){
$cnt > 10 and last;
sleep 1;
$cnt++;
}
$cnt = 0;
while($IE->readyState != 4){
$cnt > 10 and last;
sleep 1;
$cnt++;
}
}
#----------------------------------------------------------------
sub test_proxy{
my $addr = shift;
my $port = shift;
$port or $port = 8881;
unless($addr){
print "No proxy:\n";
$ha->SetValueEx(`ProxyEnable`, undef, REG_DWORD, 0);
$ha->SetValueEx(`ProxyServer`, undef, REG_SZ, ``);
sleep 1;
}
else{
print "$addr:\n";
$ha->SetValueEx(`ProxyEnable`, undef, REG_DWORD, 1);
$ha->SetValueEx(`ProxyServer`, undef, REG_SZ, "${addr}:${port}");
sleep 1;
}
my $start = time;
for my $m(1..5){
for my $url(@urls){
get_page($url);
}
my $res_time = time - $start;
print $res_time, "\n";
}
my $res_time = time - $start;
my $now = strftime("%Y-%m-%d %H:%M:%S", localtime(time));
print "$addr, $now, total = $res_time\n";
}
#----------------------------------------------------------------
# Main.
$| = 1;
test_proxy(shift, shift);
$IE->quit;
$ha->Close();
|
|
|
|
|