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