Re: Tclkit vs Tclkit Lite VFS performance

"Pat Thoyts" <[email protected]>
Newsgroups gmane.comp.lang.tcl.starkit
Message-ID <[email protected]>
On windows with tcl 8.4 things don't look all that bad...

C:\opt\tcl\src\kitbench>tclkitsh vfsperf.tcl
kitten C:/opt/tcl/src/kitbench/kitten.kit
sdx C:/opt/tcl/src/kitbench/sdx.kit
tclkit 8.4.15 : C:/opt/tcl/src/kitbench/tclkitsh84.exe
  lite 8.4.15 : C:/opt/tcl/src/kitbench/tclkit-cli84.exe
                        run one  run two
tclkit {} :             27654.4  22847.0
  lite {} :             27350.7  21835.9
tclkit pkgreq :         29986.8  29551.2
  lite pkgreq :         45906.9  46630.4

tclkit stat :           123.349  133.361
  lite stat :           229.1    229.748
tclkit mtime :          115.989  122.39
  lite mtime :          216.122  223.718
tclkit glob :           1992.81  1944.34
  lite glob :           648.95   646.85
tclkit open :           173.49   173.91
  lite open :           395.8    397.56
tclkit read :           325.0    369.51
  lite read :           453.18   451.39
tclkit read-large :     4447.03  4529.73
  lite read-large :     6500.06  6798.68

However things are much worse with 8.5 ...
C:\opt\tcl\src\kitbench>tclkitsh85 vfsperf.tcl
kitten C:/opt/tcl/src/kitbench/kitten.kit
sdx C:/opt/tcl/src/kitbench/sdx.kit
tclkit 8.5a4 : C:/opt/tcl/src/kitbench/tclkitsh85.exe
  lite 8.5a6 : C:/opt/tcl/src/kitbench/tclkit-cli85.exe

tclkit {} : 21372.4
  lite {} : 34439.7
tclkit pkgreq : 27764.1
  lite pkgreq : 156321.6

tclkit stat : 151.223
  lite stat : 3809.82
tclkit mtime : 153.387
  lite mtime : 3792.815
tclkit glob : 1739.74
  lite glob : 36003.36
154.94 microseconds per iteration
called Tcl_Close on channel with refCount > 0

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
    while executing
"exec $tclkit << $script"
    ("foreach" body line 3)
    invoked from within
"foreach {name script} {
    stat {
        source $kitten
        set file $kitten/lib/tcllib1.6/doctools/mpformats/idx.text
        puts [time {file ..."
    (file "vfsperf.tcl" line 26)


The tclkit 8.4 executable was built with msvc while the tclkit-cli
executable was built using gcc -- I will try and get them both built
the same way at some point. However the 8.5 executables have both been
built with the same compiler (msvc6). There is a catastophic slowdown
in the 8.5 case and I will guess from  previous experience that this
is to do with the new arbitrary length integer code. MD5 had trouble
with this at one point although I don't know if these tests run
something like that.
I don't know at this time what is causing the stacktrace for 8.5.
Possibly some rechan based issue.

Pat Thoyts
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.