58 lines
2.3 KiB
Python
58 lines
2.3 KiB
Python
|
# Copyright 2013 The Chromium Authors. All rights reserved.
|
||
|
# Use of this source code is governed by a BSD-style license that can be
|
||
|
# found in the LICENSE file.
|
||
|
|
||
|
from metrics import Metric
|
||
|
|
||
|
class IOMetric(Metric):
|
||
|
"""IO-related metrics, obtained via telemetry.core.Browser."""
|
||
|
|
||
|
def Start(self, page, tab):
|
||
|
raise NotImplementedError()
|
||
|
|
||
|
def Stop(self, page, tab):
|
||
|
raise NotImplementedError()
|
||
|
|
||
|
def AddResults(self, tab, results):
|
||
|
# This metric currently only returns summary results, not per-page results.
|
||
|
raise NotImplementedError()
|
||
|
|
||
|
def AddSummaryResults(self, tab, results):
|
||
|
"""Add summary results to the results object."""
|
||
|
io_stats = tab.browser.io_stats
|
||
|
if not io_stats['Browser']:
|
||
|
return
|
||
|
|
||
|
def AddSummariesForProcessType(process_type_io, process_type_trace):
|
||
|
"""For a given process type, add all relevant summary results.
|
||
|
|
||
|
Args:
|
||
|
process_type_io: Type of process (eg Browser or Renderer).
|
||
|
process_type_trace: String to be added to the trace name in the results.
|
||
|
"""
|
||
|
if 'ReadOperationCount' in io_stats[process_type_io]:
|
||
|
results.AddSummary('read_operations_' + process_type_trace, 'count',
|
||
|
io_stats[process_type_io]
|
||
|
['ReadOperationCount'],
|
||
|
data_type='unimportant')
|
||
|
if 'WriteOperationCount' in io_stats[process_type_io]:
|
||
|
results.AddSummary('write_operations_' + process_type_trace, 'count',
|
||
|
io_stats[process_type_io]
|
||
|
['WriteOperationCount'],
|
||
|
data_type='unimportant')
|
||
|
if 'ReadTransferCount' in io_stats[process_type_io]:
|
||
|
results.AddSummary('read_bytes_' + process_type_trace, 'kb',
|
||
|
io_stats[process_type_io]
|
||
|
['ReadTransferCount'] / 1024,
|
||
|
data_type='unimportant')
|
||
|
if 'WriteTransferCount' in io_stats[process_type_io]:
|
||
|
results.AddSummary('write_bytes_' + process_type_trace, 'kb',
|
||
|
io_stats[process_type_io]
|
||
|
['WriteTransferCount'] / 1024,
|
||
|
data_type='unimportant')
|
||
|
|
||
|
AddSummariesForProcessType('Browser', 'browser')
|
||
|
AddSummariesForProcessType('Renderer', 'renderer')
|
||
|
AddSummariesForProcessType('Gpu', 'gpu')
|
||
|
|