in reply to Fast - Compact That String
How does 16 second/million (both ways) including sub call overhead compare?
#! perl -slw use strict; use Time::HiRes qw[ time ]; my @c = (' ', '0'..'9', 'A'..'Z' ); sub fromB37 { my $n = shift; join '', map { my $c = $n %37; $n = int( $n / 37 ); $c[ $c ]; } 1 .. 6; } my %c = map{ $c[ $_ ] => $_ } 0 .. 36; sub toB37 { my $n = 0; $n = $n * 37 + $c{$_} for reverse unpack '(a)*', $_[0]; return $n; } my $start = time; for ( 1 .. 1e6 ) { my $n = int( rand 37**6 ); $n == toB37( fromB37( $n ) ) or die $n; } printf "Took %.3f second\n", time() - $start; __END__ C:\test>junk45 Took 16.404 second
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Fast - Compact That String
by BrowserUk (Patriarch) on Feb 09, 2012 at 23:30 UTC | |
by mbethke (Hermit) on Feb 10, 2012 at 05:12 UTC | |
by BrowserUk (Patriarch) on Feb 10, 2012 at 05:34 UTC | |
by Limbic~Region (Chancellor) on Feb 10, 2012 at 14:49 UTC | |
by mbethke (Hermit) on Feb 10, 2012 at 16:59 UTC | |
by tobyink (Canon) on Feb 10, 2012 at 20:28 UTC | |
by Limbic~Region (Chancellor) on Feb 11, 2012 at 15:43 UTC | |
by tobyink (Canon) on Feb 12, 2012 at 22:07 UTC | |
| |
by BrowserUk (Patriarch) on Feb 10, 2012 at 20:06 UTC |