summaryrefslogtreecommitdiff
path: root/ruby/bench.rb
diff options
context:
space:
mode:
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."
+
+