golang completed in 1164.213ms
ruby completed in 2431.504ms
golang:
- real 0m1.228s
- user 0m0.217s
- sys 0m0.029s
ruby:
- real 0m3.292s
- user 0m1.614s
- sys 0m0.135s
package main | |
import ( | |
"fmt" | |
"github.com/crowdmob/goamz/aws" | |
"github.com/crowdmob/goamz/dynamodb" | |
"log" | |
"os" | |
"time" | |
) | |
func main() { | |
start := time.Now() | |
fmt.Printf("starting\n") | |
os.Setenv("AWS_ACCESS_KEY_ID", "...") | |
os.Setenv("AWS_SECRET_ACCESS_KEY", "...") | |
auth, err := aws.EnvAuth() | |
if err != nil { | |
log.Fatal(err.Error()) | |
} | |
ddbs := dynamodb.New(auth, aws.USEast) | |
primary := dynamodb.NewStringAttribute("account_id", "") | |
key := dynamodb.PrimaryKey{primary, nil} | |
table := ddbs.NewTable("moby_events", key) | |
q := dynamodb.NewQuery(table) | |
// q.AddKey(&dynamodb.Key{HashKey: "test"}) | |
acs := []dynamodb.AttributeComparison{ | |
*dynamodb.NewStringAttributeComparison("account_id", "EQ", "CUfKqynamDnZV9+d"), | |
} | |
q.AddKeyConditions(acs) | |
result, err := dynamodb.RunQuery(q, table) | |
if err != nil { | |
log.Fatal(err.Error()) | |
} | |
for i, n := range result { | |
fmt.Printf("%2d: %s\n", i, n["created_at"].Value) | |
} | |
// fmt.Printf("%s\n", q.String()) | |
elapsed := time.Since(start) | |
fmt.Printf("Completed in %dms", elapsed.Nanoseconds()/1000) | |
} |
require 'aws-sdk' | |
started_at = Time.now | |
client = Aws::DynamoDB::Client.new( | |
region: 'us-east-1', | |
access_key_id: '...', | |
secret_access_key: '...' | |
) | |
resp = client.query( | |
table_name: 'moby_events', | |
key_conditions: { | |
'account_id' => { | |
attribute_value_list: ['CUfKqynamDnZV9+d'], | |
comparison_operator: 'EQ', | |
}, | |
} | |
) | |
resp.items.each_with_index do |item, index| | |
puts "#{index}: #{item['created_at']}" | |
end | |
puts "Completed in: #{(Time.now - started_at) * 1000} ms" |