Artifact 8e7cb192034f602184efab14009bdfe773d04623
File
tools/cvs2fossil/getmemoryseries.tcl
part of check-in
[f46458d5bd]
- Reworked the basic structure of pass InitCSets to keep memory consumption down. Now incremental creates, breaks, saves, and releases changesets, instead of piling them on before saving all at the end. Memory tracking confirms that this changes the accumulating mountain into a near-constant usage, with the expected spikes from the breaking.
by
aku on
2008-02-17 02:06:19.
#!/bin/bash
# -*- tcl -*- \
exec tclsh "$0" ${1+"$@"}
package require csv
foreach {in outbasic outmarker plot outbasicold} $argv break
set in [open $in r]
set ba [open $outbasic w]
set mr [open $outmarker w]
puts $ba "\# Time Memory MaxMemory"
puts $mr "\# Time Memory"
set k 0
while {![eof $in]} {
gets $in line
puts -nonewline \r[incr k]
if {[string match *|=|* $line]} {
# Basic series
regexp {^(.*)|=|} $line -> line
foreach {x _ cba _ _ _ mba} $line break
puts $ba [join [list $x $cba $mba] \t]
continue
}
if {[string match *|@|* $line]} {
# Marker series
regexp {^(.*)|@|} $line -> line
foreach {x _ cba} $line break
puts $mr [join [list $x $cba] \t]
continue
}
}
puts ""
close $in
close $ba
close $mr
# Generate gnuplot control file for the series
set f [open $plot w]
puts $f ""
puts $f "plot \"$outbasic\" using 1:2 title 'Memory' with steps, \\"
puts $f " \"$outbasic\" using 1:3 title 'Max Memory' with steps"
puts $f "pause -1"
puts $f ""
close $f
# Generate gnuplot control file for comparison of series
set f [open ${plot}-compare w]
puts $f ""
puts $f "plot \"$outbasicold\" using 1:2 title 'Memory Old' with steps, \\"
puts $f " \"$outbasic\" using 1:2 title 'Memory New' with steps"
puts $f "pause -1"
puts $f ""
close $f
exit
# Comparison to baseline
plot "basic.dat" using 1:2 title 'Memory Base' with steps lt rgb "blue", \
"newbasic.dat" using 1:2 title 'Memory Current' with steps lt rgb "red", \
# Comparison to baseline via normalization - need math op (div)
plot "basic.dat" using 1:2 title 'Memory Base' with steps lt rgb "blue", \
"newbasic.dat" using 1:2 title 'Memory Current' with steps lt rgb "red", \