Artifact d3a2537d7a3589138c1774f8b29f8b0074047c0a:
File
tools/cvs2fossil/getmemoryseries.tcl
part of check-in
[8287044ecd]
- Created a memory tracking subsystem to investigate memory consumption of the system in general, and pass InitCsets in particular. getmemory series is a postprocessor pulling the data out of the log and into a tables gnuplot is able to handle.
by
aku on
2008-02-16 06:43:54.
0000: 23 21 2f 62 69 6e 2f 62 61 73 68 0a 23 20 2d 2a #!/bin/bash.# -*
0010: 2d 20 74 63 6c 20 2d 2a 2d 20 5c 0a 65 78 65 63 - tcl -*- \.exec
0020: 20 74 63 6c 73 68 20 22 24 30 22 20 24 7b 31 2b tclsh "$0" ${1+
0030: 22 24 40 22 7d 0a 0a 70 61 63 6b 61 67 65 20 72 "$@"}..package r
0040: 65 71 75 69 72 65 20 63 73 76 0a 66 6f 72 65 61 equire csv.forea
0050: 63 68 20 7b 69 6e 20 6f 75 74 62 61 73 69 63 20 ch {in outbasic
0060: 6f 75 74 6d 61 72 6b 65 72 20 70 6c 6f 74 7d 20 outmarker plot}
0070: 24 61 72 67 76 20 62 72 65 61 6b 0a 0a 73 65 74 $argv break..set
0080: 20 69 6e 20 5b 6f 70 65 6e 20 24 69 6e 20 20 20 in [open $in
0090: 20 20 20 20 20 72 5d 0a 73 65 74 20 62 61 20 5b r].set ba [
00a0: 6f 70 65 6e 20 24 6f 75 74 62 61 73 69 63 20 20 open $outbasic
00b0: 77 5d 0a 73 65 74 20 6d 72 20 5b 6f 70 65 6e 20 w].set mr [open
00c0: 24 6f 75 74 6d 61 72 6b 65 72 20 77 5d 0a 0a 70 $outmarker w]..p
00d0: 75 74 73 20 24 62 61 20 22 5c 23 20 54 69 6d 65 uts $ba "\# Time
00e0: 20 4d 65 6d 6f 72 79 20 4d 61 78 4d 65 6d 6f 72 Memory MaxMemor
00f0: 79 22 0a 70 75 74 73 20 24 6d 72 20 22 5c 23 20 y".puts $mr "\#
0100: 54 69 6d 65 20 4d 65 6d 6f 72 79 22 0a 0a 73 65 Time Memory"..se
0110: 74 20 6b 20 30 0a 77 68 69 6c 65 20 7b 21 5b 65 t k 0.while {![e
0120: 6f 66 20 24 69 6e 5d 7d 20 7b 0a 20 20 20 20 67 of $in]} {. g
0130: 65 74 73 20 24 69 6e 20 6c 69 6e 65 0a 20 20 20 ets $in line.
0140: 20 70 75 74 73 20 2d 6e 6f 6e 65 77 6c 69 6e 65 puts -nonewline
0150: 20 5c 72 5b 69 6e 63 72 20 6b 5d 0a 0a 20 20 20 \r[incr k]..
0160: 20 69 66 20 7b 5b 73 74 72 69 6e 67 20 6d 61 74 if {[string mat
0170: 63 68 20 2a 7c 3d 7c 2a 20 24 6c 69 6e 65 5d 7d ch *|=|* $line]}
0180: 20 7b 0a 09 23 20 42 61 73 69 63 20 73 65 72 69 {..# Basic seri
0190: 65 73 0a 09 72 65 67 65 78 70 20 7b 5e 28 2e 2a es..regexp {^(.*
01a0: 29 7c 3d 7c 7d 20 24 6c 69 6e 65 20 2d 3e 20 6c )|=|} $line -> l
01b0: 69 6e 65 0a 09 66 6f 72 65 61 63 68 20 7b 78 20 ine..foreach {x
01c0: 5f 20 63 62 61 20 5f 20 5f 20 5f 20 6d 62 61 7d _ cba _ _ _ mba}
01d0: 20 24 6c 69 6e 65 20 62 72 65 61 6b 0a 09 70 75 $line break..pu
01e0: 74 73 20 24 62 61 20 5b 6a 6f 69 6e 20 5b 6c 69 ts $ba [join [li
01f0: 73 74 20 24 78 20 24 63 62 61 20 24 6d 62 61 5d st $x $cba $mba]
0200: 20 5c 74 5d 0a 09 63 6f 6e 74 69 6e 75 65 0a 20 \t]..continue.
0210: 20 20 20 7d 0a 0a 20 20 20 20 69 66 20 7b 5b 73 }.. if {[s
0220: 74 72 69 6e 67 20 6d 61 74 63 68 20 2a 7c 40 7c tring match *|@|
0230: 2a 20 24 6c 69 6e 65 5d 7d 20 7b 0a 09 23 20 4d * $line]} {..# M
0240: 61 72 6b 65 72 20 73 65 72 69 65 73 0a 09 72 65 arker series..re
0250: 67 65 78 70 20 7b 5e 28 2e 2a 29 7c 40 7c 7d 20 gexp {^(.*)|@|}
0260: 24 6c 69 6e 65 20 2d 3e 20 6c 69 6e 65 0a 09 66 $line -> line..f
0270: 6f 72 65 61 63 68 20 7b 78 20 5f 20 63 62 61 7d oreach {x _ cba}
0280: 20 24 6c 69 6e 65 20 62 72 65 61 6b 0a 09 70 75 $line break..pu
0290: 74 73 20 24 6d 72 20 5b 6a 6f 69 6e 20 5b 6c 69 ts $mr [join [li
02a0: 73 74 20 24 78 20 24 63 62 61 5d 20 5c 74 5d 0a st $x $cba] \t].
02b0: 09 63 6f 6e 74 69 6e 75 65 0a 20 20 20 20 7d 0a .continue. }.
02c0: 7d 0a 0a 70 75 74 73 20 22 22 0a 63 6c 6f 73 65 }..puts "".close
02d0: 20 24 69 6e 0a 63 6c 6f 73 65 20 24 62 61 0a 63 $in.close $ba.c
02e0: 6c 6f 73 65 20 24 6d 72 0a 0a 23 20 47 65 6e 65 lose $mr..# Gene
02f0: 72 61 74 65 20 67 6e 75 70 6c 6f 74 20 63 6f 6e rate gnuplot con
0300: 74 72 6f 6c 20 66 69 6c 65 20 66 6f 72 20 74 68 trol file for th
0310: 65 20 73 65 72 69 65 73 0a 73 65 74 20 20 20 20 e series.set
0320: 66 20 5b 6f 70 65 6e 20 24 70 6c 6f 74 20 77 5d f [open $plot w]
0330: 0a 70 75 74 73 20 20 24 66 20 22 22 0a 70 75 74 .puts $f "".put
0340: 73 20 20 24 66 20 22 70 6c 6f 74 20 5c 22 24 6f s $f "plot \"$o
0350: 75 74 62 61 73 69 63 5c 22 20 75 73 69 6e 67 20 utbasic\" using
0360: 31 3a 32 20 74 69 74 6c 65 20 27 4d 65 6d 6f 72 1:2 title 'Memor
0370: 79 27 20 20 20 20 20 77 69 74 68 20 73 74 65 70 y' with step
0380: 73 2c 20 5c 5c 22 0a 70 75 74 73 20 20 24 66 20 s, \\".puts $f
0390: 22 20 20 20 20 20 5c 22 24 6f 75 74 62 61 73 69 " \"$outbasi
03a0: 63 5c 22 20 75 73 69 6e 67 20 31 3a 33 20 74 69 c\" using 1:3 ti
03b0: 74 6c 65 20 27 4d 61 78 20 4d 65 6d 6f 72 79 27 tle 'Max Memory'
03c0: 20 77 69 74 68 20 73 74 65 70 73 22 0a 70 75 74 with steps".put
03d0: 73 20 20 24 66 20 22 70 61 75 73 65 20 2d 31 22 s $f "pause -1"
03e0: 0a 70 75 74 73 20 20 24 66 20 22 22 0a 63 6c 6f .puts $f "".clo
03f0: 73 65 20 24 66 0a 65 78 69 74 0a 0a 23 20 43 6f se $f.exit..# Co
0400: 6d 70 61 72 69 73 6f 6e 20 74 6f 20 62 61 73 65 mparison to base
0410: 6c 69 6e 65 0a 70 6c 6f 74 20 22 62 61 73 69 63 line.plot "basic
0420: 2e 64 61 74 22 20 20 20 20 20 75 73 69 6e 67 20 .dat" using
0430: 31 3a 32 20 74 69 74 6c 65 20 27 4d 65 6d 6f 72 1:2 title 'Memor
0440: 79 20 42 61 73 65 27 20 20 20 20 77 69 74 68 20 y Base' with
0450: 73 74 65 70 73 20 6c 74 20 72 67 62 20 22 62 6c steps lt rgb "bl
0460: 75 65 22 2c 20 5c 0a 20 20 20 20 20 22 6e 65 77 ue", \. "new
0470: 62 61 73 69 63 2e 64 61 74 22 20 20 75 73 69 6e basic.dat" usin
0480: 67 20 31 3a 32 20 74 69 74 6c 65 20 27 4d 65 6d g 1:2 title 'Mem
0490: 6f 72 79 20 43 75 72 72 65 6e 74 27 20 77 69 74 ory Current' wit
04a0: 68 20 73 74 65 70 73 20 6c 74 20 72 67 62 20 22 h steps lt rgb "
04b0: 72 65 64 22 2c 20 5c 0a 0a 23 20 43 6f 6d 70 61 red", \..# Compa
04c0: 72 69 73 6f 6e 20 74 6f 20 62 61 73 65 6c 69 6e rison to baselin
04d0: 65 20 76 69 61 20 6e 6f 72 6d 61 6c 69 7a 61 74 e via normalizat
04e0: 69 6f 6e 20 2d 20 6e 65 65 64 20 6d 61 74 68 20 ion - need math
04f0: 6f 70 20 28 64 69 76 29 0a 70 6c 6f 74 20 22 62 op (div).plot "b
0500: 61 73 69 63 2e 64 61 74 22 20 20 20 20 20 75 73 asic.dat" us
0510: 69 6e 67 20 31 3a 32 20 74 69 74 6c 65 20 27 4d ing 1:2 title 'M
0520: 65 6d 6f 72 79 20 42 61 73 65 27 20 20 20 20 77 emory Base' w
0530: 69 74 68 20 73 74 65 70 73 20 6c 74 20 72 67 62 ith steps lt rgb
0540: 20 22 62 6c 75 65 22 2c 20 5c 0a 20 20 20 20 20 "blue", \.
0550: 22 6e 65 77 62 61 73 69 63 2e 64 61 74 22 20 20 "newbasic.dat"
0560: 75 73 69 6e 67 20 31 3a 32 20 74 69 74 6c 65 20 using 1:2 title
0570: 27 4d 65 6d 6f 72 79 20 43 75 72 72 65 6e 74 27 'Memory Current'
0580: 20 77 69 74 68 20 73 74 65 70 73 20 6c 74 20 72 with steps lt r
0590: 67 62 20 22 72 65 64 22 2c 20 5c 0a 0a 0a gb "red", \...