You are measuring time across a loop:
my @time = localtime(time); ... for(my $i = 0; $i<= $file_number - 1; $i++){ ... for(my $j = $i + 1; $j <= $file_number; $j++){ $x = $x + 1; my $m2 = $file_list_array[$j]; my ($Nvalue3, $Nvalue4, $Nvalue5) = fi +nd_common_items($m1, $m2, \%file_gene, 0.1); ... } ... } my @time = localtime(time);
However, i did a test and found that the time needed to calculate the overlapping between two files increases with the number of the total files.
Thats actually not what you are measuring - you are measuring the time taken to compare every file with every other file, and of course that time will go up with the number of files! -- Your loop should be close to O(Nlog(N))
In reply to Re: Why does Perl get slower when building a larger hash? (Not due to the memory swapping)
by tmharish
in thread Why does Perl get slower when building a larger hash? (Not due to the memory swapping)
by chialingh
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |