mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
bit of cleanup/optimization and some initial benchmarking
This commit is contained in:
parent
4727d782a5
commit
f82f0d450d
2 changed files with 62 additions and 3 deletions
56
bench.rb
Normal file
56
bench.rb
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
require 'rubygems'
|
||||||
|
require 'benchwarmer'
|
||||||
|
require 'right_aws'
|
||||||
|
|
||||||
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'lib'))
|
||||||
|
require 'fog/aws'
|
||||||
|
|
||||||
|
data = File.open(File.expand_path('~/.s3conf/s3config.yml')).read
|
||||||
|
config = YAML.load(data)
|
||||||
|
fog = Fog::AWS::S3.new(
|
||||||
|
:aws_access_key_id => config['aws_access_key_id'],
|
||||||
|
:aws_secret_access_key => config['aws_secret_access_key']
|
||||||
|
)
|
||||||
|
raws = RightAws::S3Interface.new(
|
||||||
|
config['aws_access_key_id'],
|
||||||
|
config['aws_secret_access_key']
|
||||||
|
)
|
||||||
|
raws.logger.level = 3 # ERROR
|
||||||
|
|
||||||
|
Benchmark.bm(25) do |bench|
|
||||||
|
bench.report('fog.put_bucket') do
|
||||||
|
fog.put_bucket('fogbench')
|
||||||
|
end
|
||||||
|
bench.report('raws.create_bucket') do
|
||||||
|
raws.create_bucket('rawsbench')
|
||||||
|
end
|
||||||
|
|
||||||
|
print '-' * 64 << "\n"
|
||||||
|
|
||||||
|
bench.report('fog.put_object') do
|
||||||
|
file = File.open(File.dirname(__FILE__) + '/spec/lorem.txt', 'r')
|
||||||
|
fog.put_object('fogbench', 'lorem', file)
|
||||||
|
end
|
||||||
|
bench.report('raws.put') do
|
||||||
|
file = File.open(File.dirname(__FILE__) + '/spec/lorem.txt', 'r')
|
||||||
|
raws.put('rawsbench', 'lorem', file)
|
||||||
|
end
|
||||||
|
|
||||||
|
print '-' * 64 << "\n"
|
||||||
|
|
||||||
|
bench.report('fog.delete_object') do
|
||||||
|
fog.delete_object('fogbench', 'lorem')
|
||||||
|
end
|
||||||
|
bench.report('raws.delete') do
|
||||||
|
raws.delete('rawsbench', 'lorem')
|
||||||
|
end
|
||||||
|
|
||||||
|
print '-' * 64 << "\n"
|
||||||
|
|
||||||
|
bench.report('fog.delete_bucket') do
|
||||||
|
fog.delete_bucket('fogbench')
|
||||||
|
end
|
||||||
|
bench.report('raws.delete_bucket') do
|
||||||
|
raws.delete_bucket('rawsbench')
|
||||||
|
end
|
||||||
|
end
|
|
@ -34,13 +34,16 @@ module Fog
|
||||||
host = "#{uri.host}#{uri.port == 80 ? "" : ":#{uri.port}"}"
|
host = "#{uri.host}#{uri.port == 80 ? "" : ":#{uri.port}"}"
|
||||||
@headers.merge!({'Host' => host})
|
@headers.merge!({'Host' => host})
|
||||||
request = "#{method} #{path} HTTP/1.1\r\n"
|
request = "#{method} #{path} HTTP/1.1\r\n"
|
||||||
request << "#{headers.collect {|k,v| "#{k}: #{v}\r\n"}.join('')}\r\n"
|
for key, value in headers
|
||||||
|
request << "#{key}: #{value}\r\n"
|
||||||
|
end
|
||||||
|
request << "\r\n"
|
||||||
request << "#{@body}\r\n" if @body
|
request << "#{@body}\r\n" if @body
|
||||||
send_data(request)
|
send_data(request)
|
||||||
end
|
end
|
||||||
|
|
||||||
def receive_data(data)
|
def receive_data(data)
|
||||||
p data
|
# p data
|
||||||
unless @data
|
unless @data
|
||||||
if data =~ /\AHTTP\/1\.[01] ([\d]{3})/
|
if data =~ /\AHTTP\/1\.[01] ([\d]{3})/
|
||||||
@response.status = $1.to_i
|
@response.status = $1.to_i
|
||||||
|
@ -48,7 +51,7 @@ module Fog
|
||||||
@response.status = 0
|
@response.status = 0
|
||||||
end
|
end
|
||||||
@headers, @data = data.split("\r\n\r\n")
|
@headers, @data = data.split("\r\n\r\n")
|
||||||
@headers.split("\r\n").each do |header|
|
for header in @headers.split("\r\n")
|
||||||
if data = header.match(/(.*):\s(.*)/)
|
if data = header.match(/(.*):\s(.*)/)
|
||||||
@response.headers[data[1]] = data[2]
|
@response.headers[data[1]] = data[2]
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Reference in a new issue