summaryrefslogtreecommitdiff
path: root/ruby/bench.rb
diff options
context:
space:
mode:
authorfrsyuki <frsyuki@5a5092ae-2292-43ba-b2d5-dcab9c1a2731>2009-02-15 09:09:55 +0000
committerfrsyuki <frsyuki@5a5092ae-2292-43ba-b2d5-dcab9c1a2731>2009-02-15 09:09:55 +0000
commit269cda016dd6ea92b66e55ebe283965924e67bc1 (patch)
treefbfe2f8e3720be165a0180045b9be941d506417b /ruby/bench.rb
downloadmsgpack-python-269cda016dd6ea92b66e55ebe283965924e67bc1.tar.gz
lang/c/msgpack: added Messagepack, a binary-based efficient data interchange format.
git-svn-id: file:///Users/frsyuki/project/msgpack-git/svn/x@48 5a5092ae-2292-43ba-b2d5-dcab9c1a2731
Diffstat (limited to 'ruby/bench.rb')
-rw-r--r--ruby/bench.rb60
1 files changed, 60 insertions, 0 deletions
diff --git a/ruby/bench.rb b/ruby/bench.rb
new file mode 100644
index 0000000..1e6e27b
--- /dev/null
+++ b/ruby/bench.rb
@@ -0,0 +1,60 @@
+require 'rubygems'
+require 'json'
+require 'msgpack'
+
+def show10(str)
+ puts "#{str.length/1024} KB"
+ puts str[0, 10].unpack('C*').map{|x|"%02x"%x}.join(' ') + " ..."
+end
+
+ary = []
+i = 0
+while i < (1<<23)
+ ary << (1<<23)
+ #ary << i
+ i += 1
+end
+
+GC.start
+
+puts "----"
+puts "MessagePack"
+a = Time.now
+packed = MessagePack::pack(ary)
+b = Time.now
+show10(packed)
+puts "#{b-a} sec."
+
+GC.start
+
+puts "----"
+puts "JSON"
+a = Time.now
+json = ary.to_json
+b = Time.now
+show10(json)
+puts "#{b-a} sec."
+
+ary = nil
+GC.start
+
+
+puts "----"
+puts "MessagePack"
+a = Time.now
+ary = MessagePack::unpack(packed)
+b = Time.now
+puts "#{b-a} sec."
+
+ary = nil
+GC.start
+
+
+puts "----"
+puts "JSON"
+a = Time.now
+ary = JSON::load(json)
+b = Time.now
+puts "#{b-a} sec."
+
+