Overview
Comment: | added whodunit script |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | v1.64 |
Files: | files | file ages | folders |
SHA1: |
53f5d1bc181dc8ba5acd3ff43c730983 |
User & Date: | mrwellan on 2017-08-24 11:53:16 |
Other Links: | branch diff | manifest | tags |
Context
2017-08-25
| ||
17:59 | Minor refactor of some runs.scm code? check-in: cc163f91ad user: mrwellan tags: v1.64 | |
2017-08-24
| ||
11:53 | added whodunit script check-in: 53f5d1bc18 user: mrwellan tags: v1.64 | |
2017-08-23
| ||
23:13 | Added one-pass switch check-in: ec38c36a9d user: matt tags: v1.64 | |
Changes
Added utils/whodunit.scm version [5a4e2fa6b3].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | (use posix srfi-69) (define *numsamples* (or (and (> (length (argv)) 1) (string->number (cadr (argv)))) 20)) (print "Using " *numsamples* " as number of samples.") (define (topdata) (with-input-from-pipe (conc "top -b -n " *numsamples* " -d 0.2") read-lines)) (define (cleanup-data topdat)list (let loop ((hed (car topdat)) (tal (cdr topdat)) (res '())) (let* ((line-list (string-split hed)) (nums (map (lambda (indat)(or (string->number indat) indat)) line-list)) (not-data (or (null? nums) (not (number? (car nums))))) (new-res (if not-data res (cons nums res)))) (if (null? tal) new-res (loop (car tal)(cdr tal) new-res))))) (define data (cleanup-data (topdata))) (define pidhash (make-hash-table)) (define userhash (make-hash-table)) ;; sum up and normalize the (for-each (lambda (indat) (let ((pid (car indat)) (usr (cadr indat)) (cpu (list-ref indat 8))) (hash-table-set! userhash usr (+ cpu (hash-table-ref/default userhash usr 0))))) data) (for-each (lambda (usr) (print usr (if (< (string-length usr) 8) "\t\t" "\t") (inexact->exact (round (/ (hash-table-ref userhash usr) *numsamples*))))) (sort (hash-table-keys userhash) (lambda (a b) (> (hash-table-ref userhash a) (hash-table-ref userhash b))))) |