Skip to content

Instantly share code, notes, and snippets.

@akrzos
Created October 1, 2015 15:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save akrzos/f9fd7d1ef060a375a583 to your computer and use it in GitHub Desktop.
Save akrzos/f9fd7d1ef060a375a583 to your computer and use it in GitHub Desktop.
[root@dhcp23-97 vmdb]# bundle exec bin/rails c
Loading production environment (Rails 3.2.17)
irb(main):001:0> ActiveRecord::Base.logger.level = 1
=> 1
irb(main):002:0> require "objspace"
=> true
irb(main):003:0> mrss_start = MiqProcess.processInfo()[:memory_usage]
=> 128069632
irb(main):004:0> vrss_start = MiqProcess.processInfo[:memory_size]
=> 392183808
irb(main):005:0> GC.stat
=> {:count=>87, :heap_used=>1678, :heap_length=>3018, :heap_increment=>1340, :heap_live_num=>425477, :heap_free_num=>323275, :heap_final_num=>0, :total_allocated_object=>3807847, :total_freed_object=>3382370}
irb(main):006:0> e = ExtManagementSystem.find_by_name('vmware-small')
=> #<EmsVmware id: 1, name: "vmware-small", port: nil, hostname: "10.12.20.65", ipaddress: nil, created_on: "2015-10-01 15:56:24", updated_on: "2015-10-01 15:56:24", guid: "f75fd11a-6854-11e5-995d-0001a4ae7104", zone_id: 1, type: "EmsVmware", api_version: nil, uid_ems: nil, host_default_vnc_port_start: nil, host_default_vnc_port_end: nil, provider_region: nil, last_refresh_error: nil, last_refresh_date: nil, provider_id: nil, security_protocol: nil, realm: nil>
irb(main):007:0> timing = Benchmark.realtime { EmsRefresh.refresh e }
=> 12.972153977
irb(main):008:0> mrss_end = MiqProcess.processInfo()[:memory_usage]
=> 188264448
irb(main):009:0> vrss_end = MiqProcess.processInfo[:memory_size]
=> 473165824
irb(main):010:0> GC.stat
=> {:count=>131, :heap_used=>2139, :heap_length=>3018, :heap_increment=>879, :heap_live_num=>666357, :heap_free_num=>251377, :heap_final_num=>0, :total_allocated_object=>8730491, :total_freed_object=>8064134}
irb(main):011:0> mrss_change = mrss_end - mrss_start
=> 60194816
irb(main):012:0> vrss_change = vrss_end - vrss_start
=> 80982016
irb(main):013:0> puts "#{mrss_start}, #{mrss_end}, #{mrss_change}"
128069632, 188264448, 60194816
=> nil
irb(main):014:0> puts "#{vrss_start}, #{vrss_end}, #{vrss_change}"
392183808, 473165824, 80982016
=> nil
irb(main):015:0> puts timing
12.972153977
=> nil
irb(main):016:0> ObjectSpace.count_tdata_objects
=> {RubyVM::InstructionSequence=>48554, Time=>609, Proc=>6405, RubyVM::Env=>7312, :autoload_i=>376, :autoload=>49, Mutex=>181, Encoding=>100, ThreadGroup=>2, Binding=>3, Thread=>2, RubyVM=>1, :iseq=>1, Random=>1, ARGF.class=>1, Data=>1, Object=>5, UnboundMethod=>3, OpenSSL::X509::Store=>1, PGconn=>1, :thread_shield=>1, :mutex=>1, BigDecimal=>2, JSON::Ext::Generator::State=>3, Method=>12, OpenSSL::Cipher::Cipher=>1, Digest::MD5=>2, Thread::Backtrace=>1, Enumerator=>4, PGresult=>7, :parser=>18}
irb(main):017:0> ObjectSpace.count_objects_size
=> {:T_OBJECT=>1538040, :T_CLASS=>6021880, :T_MODULE=>1920216, :T_STRING=>10637336, :T_REGEXP=>2298519, :T_ARRAY=>1656064, :T_HASH=>11525944, :T_STRUCT=>10080, :T_FILE=>13376, :T_DATA=>70442699, :T_MATCH=>79920, :TOTAL=>106144074}
irb(main):018:0> ObjectSpace.memsize_of_all(String)
=> 10492614
irb(main):019:0> ObjectSpace.memsize_of_all
=> 103138990
irb(main):020:0>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment