Home | History | Annotate | Download | only in android
      1 #!/usr/bin/env python
      2 #
      3 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
      4 # Use of this source code is governed by a BSD-style license that can be
      5 # found in the LICENSE file.
      6 
      7 """Provides iotop/top style profiling for android.
      8 
      9 Usage:
     10   ./device_stats_monitor.py --hz=20 --duration=5 --outfile=/tmp/foo
     11 """
     12 
     13 import optparse
     14 import os
     15 import sys
     16 import time
     17 
     18 from pylib import android_commands
     19 from pylib import device_stats_monitor
     20 from pylib.utils import test_options_parser
     21 
     22 
     23 def main(argv):
     24   option_parser = optparse.OptionParser()
     25   option_parser.add_option('--hz', type='int', default=20,
     26                            help='Number of samples/sec.')
     27   option_parser.add_option('--duration', type='int', default=5,
     28                            help='Seconds to monitor.')
     29   option_parser.add_option('--outfile', default='/tmp/devicestatsmonitor',
     30                            help='Location to start output file.')
     31   test_options_parser.AddBuildTypeOption(option_parser)
     32   options, args = option_parser.parse_args(argv)
     33 
     34   monitor = device_stats_monitor.DeviceStatsMonitor(
     35       android_commands.AndroidCommands(), options.hz, options.build_type)
     36   monitor.Start()
     37   print 'Waiting for %d seconds while profiling.' % options.duration
     38   time.sleep(options.duration)
     39   url = monitor.StopAndCollect(options.outfile)
     40   print 'View results in browser at %s' % url
     41 
     42 if __name__ == '__main__':
     43   sys.exit(main(sys.argv))
     44