class Droid::Monitor::Memory
Attributes
memory_detail_usage[R]
memory_usage[R]
Public Class Methods
new(opts = {})
click to toggle source
Calls superclass method
Droid::Monitor::Adb::new
# File lib/droid/monitor/memory.rb, line 16 def initialize(opts = {}) super(opts) @memory_usage = [] @memory_detail_usage = [] end
Public Instance Methods
clear_memory_detail_usage()
click to toggle source
# File lib/droid/monitor/memory.rb, line 26 def clear_memory_detail_usage @memory_detail_usage = [] end
clear_memory_usage()
click to toggle source
# File lib/droid/monitor/memory.rb, line 22 def clear_memory_usage @memory_usage = [] end
create_graph(data_file_path, graph_opts = {}, output_file_path)
click to toggle source
@params [String] data_file_path A path to data. @params [Hash] graph_opts A hash regarding graph settings. @params [String] output_file_path A path you would like to export data.
# File lib/droid/monitor/memory.rb, line 140 def create_graph(data_file_path, graph_opts = {}, output_file_path) # rubocop:disable Style/OptionalArguments save(Droid::Monitor::GoogleApiTemplate.create_graph(data_file_path, graph_opts), output_file_path) end
dump_memory_details_usage(dump_data)
click to toggle source
# File lib/droid/monitor/memory.rb, line 43 def dump_memory_details_usage(dump_data) raise 'no process' if dump_data == "No process found for: #{@package}" scanned_dump = dump_data.scan(/^.*TOTAL.*$/).map(&:strip).first return [] if scanned_dump.nil? scanned_dump.split(/\s/).reject(&:empty?) rescue StandardError => e puts e [] end
dump_memory_usage(dump_data)
click to toggle source
# File lib/droid/monitor/memory.rb, line 30 def dump_memory_usage(dump_data) raise 'no process' if dump_data == "No process found for: #{@package}" scanned_dump = dump_data.scan(/^.*Uptime.*Realtime.*$/).map(&:strip).first return [] if scanned_dump.nil? scanned_dump.split(/\s/).reject(&:empty?) rescue StandardError => e puts e [] end
export_as_google_api_format(data)
click to toggle source
# File lib/droid/monitor/memory.rb, line 98 def export_as_google_api_format(data) if @api_level.to_i >= 19 google_api_data_format = empty_google_api_format_over44 data.each do |hash| a_google_api_data_format = { c: [ { v: hash[:time] }, { v: hash[:pss_total] }, { v: hash[:private_dirty] }, { v: hash[:private_clean] }, { v: hash[:swapped_dirty] }, { v: hash[:heap_size] }, { v: hash[:heap_alloc] }, { v: hash[:heap_free] } ] } google_api_data_format[:rows].push(a_google_api_data_format) end else google_api_data_format = empty_google_api_format_over43 data.each do |hash| a_google_api_data_format = { c: [ { v: hash[:time] }, { v: hash[:pss_total] }, { v: hash[:shared_dirty] }, { v: hash[:private_dirty] }, { v: hash[:heap_size] }, { v: hash[:heap_alloc] }, { v: hash[:heap_free] } ] } google_api_data_format[:rows].push(a_google_api_data_format) end end JSON.generate google_api_data_format end
save_memory_as_google_api(file_path)
click to toggle source
# File lib/droid/monitor/memory.rb, line 66 def save_memory_as_google_api(file_path) save(export_as_google_api_format(@memory_usage), file_path) end
save_memory_details_as_google_api(file_path)
click to toggle source
# File lib/droid/monitor/memory.rb, line 70 def save_memory_details_as_google_api(file_path) save(export_as_google_api_format(@memory_detail_usage), file_path) end
store_dumped_memory_details_usage()
click to toggle source
called directory
# File lib/droid/monitor/memory.rb, line 62 def store_dumped_memory_details_usage store_memory_details_usage(dump_memory_details_usage(dump_meminfo)) end
store_dumped_memory_usage()
click to toggle source
called directory
# File lib/droid/monitor/memory.rb, line 57 def store_dumped_memory_usage store_memory_usage(dump_memory_usage(dump_meminfo)) end
store_memory_details_usage(dumped_memory_details)
click to toggle source
@param [Array] dumped_memory_details Array of dumped memory data @return [Hash] Google API formatted data
# File lib/droid/monitor/memory.rb, line 82 def store_memory_details_usage(dumped_memory_details) @memory_detail_usage.push merge_current_time(transfer_total_memory_details_to_hash(dumped_memory_details)) end
store_memory_usage(dumped_memory)
click to toggle source
@param [Array] dumped_memory Array of dumped memory data @return [Hash] Google API formatted data
# File lib/droid/monitor/memory.rb, line 76 def store_memory_usage(dumped_memory) @memory_usage.push merge_current_time(transfer_total_memory_to_hash(dumped_memory)) end
transfer_total_memory_details_to_hash(data)
click to toggle source
# File lib/droid/monitor/memory.rb, line 90 def transfer_total_memory_details_to_hash(data) if @api_level.to_i >= 19 total_memory_details_api_level_over_44(data) else total_memory_details_api_level_under_43(data) end end
transfer_total_memory_to_hash(data)
click to toggle source
# File lib/droid/monitor/memory.rb, line 86 def transfer_total_memory_to_hash(data) total_memory(data) end
Private Instance Methods
empty_google_api_format_over43()
click to toggle source
# File lib/droid/monitor/memory.rb, line 163 def empty_google_api_format_over43 { cols: [ { label: 'time', type: 'string' }, { label: 'pss_total', type: 'number' }, { label: 'shared_dirty', type: 'number' }, { label: 'private_dirty', type: 'number' }, { label: 'heap_size', type: 'number' }, { label: 'heap_alloc', type: 'number' }, { label: 'heap_free', type: 'number' } ], rows: [] } end
empty_google_api_format_over44()
click to toggle source
# File lib/droid/monitor/memory.rb, line 147 def empty_google_api_format_over44 { cols: [ { label: 'time', type: 'string' }, { label: 'pss_total', type: 'number' }, { label: 'private_dirty', type: 'number' }, { label: 'private_clean', type: 'number' }, { label: 'swapped_dirty', type: 'number' }, { label: 'heap_size', type: 'number' }, { label: 'heap_alloc', type: 'number' }, { label: 'heap_free', type: 'number' } ], rows: [] } end
total_memory(data)
click to toggle source
# File lib/droid/monitor/memory.rb, line 178 def total_memory(data) { uptime: data[1].to_i ||= 0, realtime: data[3].to_i ||= 0 } end
total_memory_details_api_level_over_44(data)
click to toggle source
# File lib/droid/monitor/memory.rb, line 185 def total_memory_details_api_level_over_44(data) { pss_total: data[1].to_i ||= 0, private_dirty: data[2].to_i ||= 0, private_clean: data[3].to_i ||= 0, swapped_dirty: data[4].to_i ||= 0, heap_size: data[5].to_i ||= 0, heap_alloc: data[6].to_i ||= 0, heap_free: data[7].to_i ||= 0 } end
total_memory_details_api_level_under_43(data)
click to toggle source
# File lib/droid/monitor/memory.rb, line 197 def total_memory_details_api_level_under_43(data) { pss_total: data[1].to_i ||= 0, shared_dirty: data[2].to_i ||= 0, private_dirty: data[3].to_i ||= 0, heap_size: data[4].to_i ||= 0, heap_alloc: data[5].to_i ||= 0, heap_free: data[6].to_i ||= 0 } end