From 0e9c34ff125bdb24592fe4a3a0f7aa8cf7e065e2 Mon Sep 17 00:00:00 2001 From: Sam Date: Thu, 28 Nov 2013 12:40:10 +1100 Subject: [PATCH] memory profiling script --- script/test_mem.rb | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 script/test_mem.rb diff --git a/script/test_mem.rb b/script/test_mem.rb new file mode 100644 index 000000000..3acf76e44 --- /dev/null +++ b/script/test_mem.rb @@ -0,0 +1,30 @@ +start = Time.now +require 'objspace' +require File.expand_path("../../config/environment", __FILE__) + +# preload stuff +I18n.t(:posts) + +# load up all models and schema +(ActiveRecord::Base.connection.tables - %w[schema_migrations]).each do |table| +table.classify.constantize.first rescue nil +end + +# router warm up +Rails.application.routes.recognize_path('abc') rescue nil + +puts "Ruby version #{RUBY_VERSION} p#{RUBY_PATCHLEVEL}" + +puts "Bootup time: #{Time.now - start} secs" + +GC.start + +puts "RSS: #{`ps -o rss -p #{$$}`.chomp.split("\n").last.to_i} KB" + +s = ObjectSpace.each_object(String).map do |o| + ObjectSpace.memsize_of(o) + 40 # rvalue size on x64 +end + +puts "Total strings: #{s.count} space used: #{s.sum} bytes" + +