1# Copyright 2013 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5from pylib import android_commands
6from pylib.device import device_utils
7
8class CacheControl(object):
9  _DROP_CACHES = '/proc/sys/vm/drop_caches'
10
11  def __init__(self, device):
12    # TODO(jbudorick) Remove once telemetry gets switched over.
13    if isinstance(device, android_commands.AndroidCommands):
14      device = device_utils.DeviceUtils(device)
15    self._device = device
16
17  def DropRamCaches(self):
18    """Drops the filesystem ram caches for performance testing."""
19    self._device.RunShellCommand('sync', as_root=True)
20    self._device.WriteFile(CacheControl._DROP_CACHES, '3', as_root=True)
21
22