#!/usr/bin/perl use Time::HiRes qw( gettimeofday ); sub index_test { my ($INDEX) = @_; for (my $i=0;$i<$INDEX;$i++) { $table[$i] = $i; } for (my $i=0;$i<$INDEX;$i++) { $b = $table[$i]; } }; sub index_string_test { my ($INDEX) = @_; for (my $i=0;$i<$INDEX;$i++) { $table["some_string"] = $i; } for (my $i=0;$i<$INDEX;$i++) { $b = $table["some_string"]; } }; sub loop_test { my ($INDEX) = @_; for (my $i=0;$i<$INDEX;$i++) { for (my $v=0;$v<10;$v++) { # do nothing } } }; sub nested_int_test { my ($INDEX) = @_; my $n = 0; for (my $a; $a < $INDEX;$a++) { $n += 34; for (my $b; $b< $INDEX; $b++) { $n += 9; for (my $c; $c< $INDEX; $c++) { $n += 5; for (my $d; $d< $INDEX; $d++) { $n += 3; for (my $e; $e< $INDEX; $e++) { $n -= 100; } } } } } }; sub file_line_test { my ($INDEX) = @_; open(FILE,"testfile.dat"); while () { } }; sub file_line_split_test { my ($INDEX) = @_; my $line; open(FILE,"testfile.dat"); while () { @line_parts = split(" "); } }; sub file_line_re_test { my ($INDEX) = @_; my $line; open(FILE,"testfile.dat"); while () { if (/([0-9]+) ([a-z]*)/) { $a = $1; $b = $2; } } }; sub dothisB { my ($a,$b) = @_; return $a; } sub returntest { my ($INDEX) = @_; for (my $i=0;$i<$INDEX;$i++) { $a = dothisB(1,2); } } sub dothis { my ($a) = @_; return $a; } sub functest { my ($INDEX) = @_; for (my $i=0;$i<$INDEX;$i++) { dothis(10); } } sub timefunk { my ($NAME,$func,$INDEX) = @_; ($secs,$usecs) = gettimeofday; my $start = $secs + ($usecs / 1000000.0); $func->($INDEX); ($secs,$usecs) = gettimeofday; my $end = $secs + ($usecs / 1000000.0); my $elapsed = ($end-$start); print "$NAME elapsed $elapsed\n"; }; # timefunk("loop_test", \&loop_test, 500000); # timefunk("index_test", \&index_test, 1000000); # timefunk("index_string_test", \&index_string_test, 1000000); # timefunk("nested_int_test", \&nested_int_test, 23); # timefunk("returntest", \&returntest,5000000); # timefunk("functest", \&functest,5000000); # timefunk("objecttest",objecttest,5000000); #timefunk("file_line_test", \&file_line_test, 1); timefunk("file_line_split_test", \&file_line_split_test, 1); #timefunk("file_line_re_test", \&file_line_re_test, 1);