[svn] r5917 - trunk/tools/dstat/plugins

packagers at lists.rpmforge.net packagers at lists.rpmforge.net
Sun Oct 14 14:31:40 CEST 2007


Author: dag
Date: 2007-10-14 14:31:40 +0200 (Sun, 14 Oct 2007)
New Revision: 5917

Modified:
   trunk/tools/dstat/plugins/dstat_topoom.py
Log:
Improvement to performance from Eric Baplue

Modified: trunk/tools/dstat/plugins/dstat_topoom.py
===================================================================
--- trunk/tools/dstat/plugins/dstat_topoom.py	2007-10-14 12:22:53 UTC (rev 5916)
+++ trunk/tools/dstat/plugins/dstat_topoom.py	2007-10-14 12:31:40 UTC (rev 5917)
@@ -28,17 +28,20 @@
                 ### Using dopen() will cause too many open files
 #               l = string.split(dopen('/proc/%s/stat' % pid).read())
                 l = string.split(open('/proc/%s/oom_score' % pid).read())
-
                 if len(l) < 1: continue
+                oom_score = int(l[0])
 
+                if  oom_score < self.val['max']: continue
+
+                ### Extract name
+                l = string.split(open('/proc/%s/stat' % pid).read())
+                name = l[1][1:-1]
+
                 ### Get commandline
                 m = string.split(open('/proc/%s/cmdline' % pid).read(), '\0')
                 if len(m) > 1:
                     cmd = os.path.basename(m[1])
 
-#                self.val[pid] = int(l[0])
-                oom_score = int(l[0])
-
             except ValueError:
                 continue
             except IOError:
@@ -46,8 +49,9 @@
 
             ### Get the process that spends the most jiffies
             if  oom_score >= self.val['max']:
+
                 self.val['max'] = oom_score
-                self.val['name'] = cmd
+                self.val['name'] = name
                 self.val['pid'] = pid
                 self.val['cmd'] = cmd
 #                st = os.stat("/proc/%s" % pid)



More information about the svn-commits mailing list