#!/usr/bin/perl -w use warnings; use strict; use Time::HiRes qw ( gettimeofday ) ; use CGI qw(:standard); use GD::Graph::hbars; use CGI::Carp (fatalsToBrowser); my $data = "E"x1020; #start with using 1k blocks shall we? my %cgi_vars; foreach my $pair ( split ( "&", $ENV{'QUERY_STRING'} ) ) { my ( $var, $val ) = split ("=", $pair); $cgi_vars{$var} = $val; } #cgi headers: print "content-type: text/html\n\n"; #take time my ( $start_seconds, $start_microseconds ) = gettimeofday; print "Start Seconds:$start_seconds Start MicroSeconds:$start_microseconds
\n"; #print stuff to thingy if ( $cgi_vars{"data_size"} ) { for ( my $count=0; $count < $cgi_vars{"data_size"}; $count++ ) { print "\n"; } } #take time my ( $end_seconds, $end_microseconds ) = gettimeofday; print "End Seconds:$end_seconds End MicroSeconds:$end_microseconds
\n"; #compare my $time_delta = ($end_seconds - $start_seconds) + ( ( $end_microseconds - $start_microseconds) / 1000000); if ( $cgi_vars{"data_size"} ) { print "your data transfer of ", $cgi_vars{"data_size"}, "k took ", $time_delta, " seconds
\n"; print "your bandwidth is ",$cgi_vars{"data_size"} / $time_delta ," kilobytes/sec
\n"; my @data = "$time_delta"; my $graph = GD::Graph::hbars->new(400, 300); $graph->set( x_label => 'Transfer Data', y_label => 'Some Label', title => 'Adelphia Speed Test' ); my $gd = my $my_graph->plot(\@data); open(IMG, '>../htdocs/graph.png') or die $!; binmode IMG; print IMG $gd->png; close IMG; } else { print "please invoke as $ENV{'SCRIPT_NAME'}?data_size=100
\n"; } exit;