Hex Artifact Content
Not logged in

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", \...