class Droid::Monitor::Gfxinfo
Attributes
gfxinfo_usage[R]
Public Class Methods
new(opts = {})
click to toggle source
Calls superclass method
Droid::Monitor::Adb::new
# File lib/droid/monitor/gfxinfo.rb, line 16 def initialize(opts = {}) super(opts) @gfxinfo_usage = [] end
Public Instance Methods
clear_gfxinfo_usage()
click to toggle source
# File lib/droid/monitor/gfxinfo.rb, line 21 def clear_gfxinfo_usage @gfxinfo_usage = [] end
create_graph(data_file_path, graph_opts = {}, output_file_path)
click to toggle source
# File lib/droid/monitor/gfxinfo.rb, line 160 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_gfxinfo_usage(dump_data)
click to toggle source
# File lib/droid/monitor/gfxinfo.rb, line 25 def dump_gfxinfo_usage(dump_data) view_dump = dump_data.scan(/^.*views,.*kB of display lists.*$/).map(&:strip).first view_memory_dump2 = dump_data.scan(/^.*bytes,.*MB.*$/).map(&:strip).first return [] if view_dump.nil? || view_memory_dump2.nil? v_dump = view_dump.split(/\s/).reject(&:empty?) v_mem_dump = view_memory_dump2.split(/\s/).reject(&:empty?) gfxs = v_mem_dump + v_dump if @api_level >= 23 view_total_frames_rendered = dump_data.scan(/^.*Total frames rendered:.*$/).map(&:strip).first view_janky_frames = dump_data.scan(/^.*Janky frames:.*$/).map(&:strip).first v_frames_rendered_dump = view_total_frames_rendered.split(/\s/).reject(&:empty?) v_janky_frames = view_janky_frames.split(/\s/).reject(&:empty?) gfxs = v_mem_dump + v_dump + v_frames_rendered_dump + v_janky_frames end gfxs rescue StandardError => e puts e [] end
export_as_google_api_format_frame(from_gfxinfo_usage)
click to toggle source
# File lib/droid/monitor/gfxinfo.rb, line 132 def export_as_google_api_format_frame(from_gfxinfo_usage) google_api_data_format = empty_google_api_format_frame if @api_level >= 23 from_gfxinfo_usage.each do |hash| a_google_api_data_format = { c: [ { v: hash[:time] }, { v: hash[:frames_rendered] }, { v: hash[:janky_frame] } ] } google_api_data_format[:rows].push(a_google_api_data_format) end else from_gfxinfo_usage.each do |hash| a_google_api_data_format = { c: [ { v: hash[:time] }, { v: hash[:frames_rendered] } ] } google_api_data_format[:rows].push(a_google_api_data_format) end end JSON.generate google_api_data_format end
export_as_google_api_format_gfx(from_gfxinfo_usage)
click to toggle source
# File lib/droid/monitor/gfxinfo.rb, line 99 def export_as_google_api_format_gfx(from_gfxinfo_usage) google_api_data_format = empty_google_api_format_gfx from_gfxinfo_usage.each do |hash| a_google_api_data_format = { c: [ { v: hash[:time] }, { v: hash[:view] }, { v: hash[:display_lists_kb] } ] } google_api_data_format[:rows].push(a_google_api_data_format) end JSON.generate google_api_data_format end
export_as_google_api_format_mem(from_gfxinfo_usage)
click to toggle source
# File lib/droid/monitor/gfxinfo.rb, line 116 def export_as_google_api_format_mem(from_gfxinfo_usage) google_api_data_format = empty_google_api_format_mem from_gfxinfo_usage.each do |hash| a_google_api_data_format = { c: [ { v: hash[:time] }, { v: hash[:total_memory] } ] } google_api_data_format[:rows].push(a_google_api_data_format) end JSON.generate google_api_data_format end
save_gfxinfo_usage_as_google_api(file_path_gfx, file_path_mem, file_path_frame)
click to toggle source
@param [String] file_path_gfx A file path to save gfx data. @param [String] file_path_mem A file path to save memory usage regarding gfx data. @param [String] file_path_frame A file path to save frame data.
# File lib/droid/monitor/gfxinfo.rb, line 60 def save_gfxinfo_usage_as_google_api(file_path_gfx, file_path_mem, file_path_frame) save(export_as_google_api_format_gfx(@gfxinfo_usage), file_path_gfx) save(export_as_google_api_format_mem(@gfxinfo_usage), file_path_mem) save(export_as_google_api_format_frame(@gfxinfo_usage), file_path_frame) end
store_dumped_gfxinfo_usage()
click to toggle source
called directory
# File lib/droid/monitor/gfxinfo.rb, line 53 def store_dumped_gfxinfo_usage store_gfxinfo_usage(dump_gfxinfo_usage(dump_gfxinfo)) end
store_gfxinfo_usage(dumped_gfxinfo)
click to toggle source
# File lib/droid/monitor/gfxinfo.rb, line 66 def store_gfxinfo_usage(dumped_gfxinfo) @gfxinfo_usage.push merge_current_time(transfer_total_gfxinfo_to_hash(dumped_gfxinfo)) end
transfer_total_gfxinfo_to_hash(dump_gfxinfo_array)
click to toggle source
# File lib/droid/monitor/gfxinfo.rb, line 70 def transfer_total_gfxinfo_to_hash(dump_gfxinfo_array) if dump_gfxinfo_array.length <= 1 { view: 0, display_lists_kb: 0, frames_rendered: 0, total_memory: 0, time: dump_gfxinfo_array.last } elsif @api_level >= 23 { view: dump_gfxinfo_array[4].to_i, display_lists_kb: dump_gfxinfo_array[6].to_f.round(2), frames_rendered: dump_gfxinfo_array[14].to_i || 0, janky_frame: dump_gfxinfo_array[17].to_i || 0, total_memory: (dump_gfxinfo_array[0].to_f / 1024).round(2), time: dump_gfxinfo_array.last } else { view: dump_gfxinfo_array[4].to_i, display_lists_kb: dump_gfxinfo_array[6].to_f.round(2), frames_rendered: dump_gfxinfo_array[11].to_i || 0, total_memory: (dump_gfxinfo_array[0].to_f / 1024).round(2), time: dump_gfxinfo_array.last } end end
Private Instance Methods
empty_google_api_format_frame()
click to toggle source
# File lib/droid/monitor/gfxinfo.rb, line 188 def empty_google_api_format_frame if @api_level >= 23 { cols: [ { label: 'time', type: 'string' }, { label: 'frames_rendered', type: 'number' }, { label: 'janky_frame', type: 'number' } ], rows: [] } else { cols: [ { label: 'time', type: 'string' }, { label: 'frames_rendered', type: 'number' } ], rows: [] } end end
empty_google_api_format_gfx()
click to toggle source
# File lib/droid/monitor/gfxinfo.rb, line 167 def empty_google_api_format_gfx { cols: [ { label: 'time', type: 'string' }, { label: 'view', type: 'number' }, { label: 'display_lists_kb', type: 'number' } ], rows: [] } end
empty_google_api_format_mem()
click to toggle source
# File lib/droid/monitor/gfxinfo.rb, line 178 def empty_google_api_format_mem { cols: [ { label: 'time', type: 'string' }, { label: 'total_memory', type: 'number' } ], rows: [] } end