Skip to content

Instantly share code, notes, and snippets.

@soh335
Created August 24, 2011 05:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save soh335/1167387 to your computer and use it in GitHub Desktop.
Save soh335/1167387 to your computer and use it in GitHub Desktop.
use strict;
use warnings;
use Benchmark qw/:all/;
use Cache::Memcached::Fast;
use Geo::Hash::XS;
use Geo::Hash;
my $memd = Cache::Memcached::Fast->new({
servers => ["localhost:11211"]
});
$memd->flush_all;
my $total = 1000;
my $geohash_xs = Geo::Hash::XS->new;
for ( my $i = 0; $i < $total; $i++ ) {
my $lat = rand(180) - 90;
my $lon = rand(360) - 180;
$memd->set("lat$i", $lat);
$memd->set("lon$i", $lon);
$memd->set("hash10_$i", $geohash_xs->encode( $lat, $lon, 10 ) );
$memd->set("hash20_$i", $geohash_xs->encode( $lat, $lon, 20 ) );
$memd->set("hash30_$i", $geohash_xs->encode( $lat, $lon, 30 ) );
}
cmpthese 300 , {
latlon => sub {
for ( my $i = 0; $i < $total; $i++ ) {
my $lat = $memd->get("lat$i");
my $lon = $memd->get("lon$i");
}
},
multi_latlon => sub {
for ( my $i = 0; $i < $total; $i++ ) {
my $vals = $memd->get_multi("lat$i", "lon$i");
}
},
geohash => sub {
for ( my $i = 0; $i < $total; $i++ ) {
my $hash = $memd->get("hash10_$i");
}
},
geohash_xs_decode_10 => sub {
my $geohash = Geo::Hash::XS->new;
for ( my $i = 0; $i < $total; $i++ ) {
my ($lat, $lon) = $geohash->decode($memd->get("hash10_$i"));
}
},
geohash_xs_decode_20 => sub {
my $geohash = Geo::Hash::XS->new;
for ( my $i = 0; $i < $total; $i++ ) {
my ($lat, $lon) = $geohash->decode($memd->get("hash20_$i"));
}
},
geohash_xs_decode_30 => sub {
my $geohash = Geo::Hash::XS->new;
for ( my $i = 0; $i < $total; $i++ ) {
my ($lat, $lon) = $geohash->decode($memd->get("hash30_$i"));
}
},
geohash_pure_decode => sub {
my $geohash = Geo::Hash->new;
for ( my $i = 0; $i < $total; $i++ ) {
my ($lat, $lon) = $geohash->decode($memd->get("hash10_$i"));
}
}
};
@mash
Copy link

mash commented Aug 25, 2011

@soh335
Copy link
Author

soh335 commented Aug 25, 2011

知りませんでした。気をつけますー。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment