Artifact Content
Not logged in

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