Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Side by Side Diff: third_party/psutil/examples/process_detail.py

Issue 8774018: Add psutil build step to fix pyauto media issues. Upgrade psutil to 0.4.0. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Disable Mac builds. Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # 2 #
3 # $Id: process_detail.py 1143 2011-10-05 19:11:59Z g.rodola $ 3 # $Id: process_detail.py 1213 2011-10-29 03:30:41Z g.rodola $
4 # 4 #
5 # Copyright (c) 2009, Jay Loden, Giampaolo Rodola'. All rights reserved. 5 # Copyright (c) 2009, Jay Loden, Giampaolo Rodola'. All rights reserved.
6 # Use of this source code is governed by a BSD-style license that can be 6 # Use of this source code is governed by a BSD-style license that can be
7 # found in the LICENSE file. 7 # found in the LICENSE file.
8 8
9 """ 9 """
10 Print detailed information about a process. 10 Print detailed information about a process.
11 """ 11 """
12 12
13 import os 13 import os
14 import datetime 14 import datetime
15 import socket 15 import socket
16 import sys 16 import sys
17 17
18 import psutil 18 import psutil
19 from psutil._compat import namedtuple
20 19
21 20
22 def convert_bytes(n): 21 def convert_bytes(n):
23 if n == 0: 22 if n == 0:
24 return '0B' 23 return '0B'
25 symbols = ('k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y') 24 symbols = ('k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y')
26 prefix = {} 25 prefix = {}
27 for i, s in enumerate(symbols): 26 for i, s in enumerate(symbols):
28 prefix[s] = 1 << (i+1)*10 27 prefix[s] = 1 << (i+1)*10
29 for s in reversed(symbols): 28 for s in reversed(symbols):
30 if n >= prefix[s]: 29 if n >= prefix[s]:
31 value = float(n) / prefix[s] 30 value = float(n) / prefix[s]
32 return '%.1f%s' % (value, s) 31 return '%.1f%s' % (value, s)
32 return n
33 33
34 def print_(a, b): 34 def print_(a, b):
35 if sys.stdout.isatty(): 35 if sys.stdout.isatty() and os.name == 'posix':
36 fmt = '\x1b[1;32m%-17s\x1b[0m %s' %(a, b) 36 fmt = '\x1b[1;32m%-17s\x1b[0m %s' %(a, b)
37 else: 37 else:
38 fmt = '%-15s %s' %(a, b) 38 fmt = '%-15s %s' %(a, b)
39 print fmt 39 print fmt
40 40
41 def run(pid): 41 def run(pid):
42 p = psutil.Process(pid) 42 p = psutil.Process(pid)
43 if p.parent: 43 if p.parent:
44 parent = '(%s)' % p.parent.name 44 parent = '(%s)' % p.parent.name
45 else: 45 else:
46 parent = '' 46 parent = ''
47 started = datetime.datetime.fromtimestamp(p.create_time).strftime('%Y-%M-%d %H:%M') 47 started = datetime.datetime.fromtimestamp(p.create_time).strftime('%Y-%M-%d %H:%M')
48 io = p.get_io_counters() 48 if hasattr(p, 'get_io_counters'):
49 io = p.get_io_counters()
49 mem = p.get_memory_info() 50 mem = p.get_memory_info()
50 mem = '%s%% (resident=%s, virtual=%s) ' %(round(p.get_memory_percent(), 1), 51 mem = '%s%% (resident=%s, virtual=%s) ' %(round(p.get_memory_percent(), 1),
51 convert_bytes(mem.rss), 52 convert_bytes(mem.rss),
52 convert_bytes(mem.vms)) 53 convert_bytes(mem.vms))
53 cpu_times = p.get_cpu_times() 54 cpu_times = p.get_cpu_times()
54 cpu_percent = p.get_cpu_percent(0) 55 cpu_percent = p.get_cpu_percent(0)
55 children = p.get_children() 56 children = p.get_children()
56 files = p.get_open_files() 57 files = p.get_open_files()
57 threads = p.get_threads() 58 threads = p.get_threads()
58 connections = p.get_connections() 59 connections = p.get_connections()
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 print_('', 'fd=%s %s ' % (file.fd, file.path)) 93 print_('', 'fd=%s %s ' % (file.fd, file.path))
93 94
94 if threads: 95 if threads:
95 print_('running threads', '') 96 print_('running threads', '')
96 for thread in threads: 97 for thread in threads:
97 print_('', 'id=%s, user-time=%s, sys-time=%s' \ 98 print_('', 'id=%s, user-time=%s, sys-time=%s' \
98 % (thread.id, thread.user_time, thread.system_time)) 99 % (thread.id, thread.user_time, thread.system_time))
99 if connections: 100 if connections:
100 print_('open connections', '') 101 print_('open connections', '')
101 for conn in connections: 102 for conn in connections:
102 type = 'TCP' if conn.type == socket.SOCK_STREAM else 'UDP' 103 if conn.type == socket.SOCK_STREAM:
104 type = 'TCP'
105 elif conn.type == socket.SOCK_DGRAM:
106 type = 'UDP'
107 else:
108 type = 'UNIX'
103 lip, lport = conn.local_address 109 lip, lport = conn.local_address
104 if not conn.remote_address: 110 if not conn.remote_address:
105 rip, rport = '*', '*' 111 rip, rport = '*', '*'
106 else: 112 else:
107 rip, rport = conn.remote_address 113 rip, rport = conn.remote_address
108 print_('', '%s:%s -> %s:%s type=%s status=%s' \ 114 print_('', '%s:%s -> %s:%s type=%s status=%s' \
109 % (lip, lport, rip, rport, type, conn.status)) 115 % (lip, lport, rip, rport, type, conn.status))
110 116
111 def main(argv=None): 117 def main(argv=None):
112 if argv is None: 118 if argv is None:
113 argv = sys.argv 119 argv = sys.argv
114 if len(argv) == 1: 120 if len(argv) == 1:
115 sys.exit(run(os.getpid())) 121 sys.exit(run(os.getpid()))
116 elif len(argv) == 2: 122 elif len(argv) == 2:
117 sys.exit(run(int(argv[1]))) 123 sys.exit(run(int(argv[1])))
118 else: 124 else:
119 sys.exit('usage: %s [pid]' % __file__) 125 sys.exit('usage: %s [pid]' % __file__)
120 126
121 if __name__ == '__main__': 127 if __name__ == '__main__':
122 sys.exit(main()) 128 sys.exit(main())
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698