Dear XOTclers,
here are some more or less useless benchmarks, which compare XOTcl with OTcl, ITcl, stoop and classytcl. everything was done on the same machine with tcl 8.3.2 and the forthcoming XOTcl 0.9 version.
The short summary: XOTcl compares very well with OTcl, methodcalls are faster than in itcl, but object creation is still slower. For the memory consumption for objects, XOTcl is now better than itcl or OTcl. The xotcl numbers are with uwe's new "namespace on demand" code, where the namespace is only allocated when needed (e.g. when procs or children are added).
The first benchmarks are from http://www.bagley.org/~doug/shootout. Methcall measures the speed of the method invocation, objinst creates objects and does a few operations on it. The reported times are from the unix time command (user/system/elapsed time)
XOTcl methcall: 0.700u 0.000s 0:00.70 101.4% 0+0k 0+0io 282pf+0w objinst: 2.390u 0.010s 0:02.40 100.0% 0+0k 0+0io 282pf+0w OTcl methcall: 1.370u 0.000s 0:01.36 100.7% 0+0k 0+0io 330pf+0w objinst: 3.090u 0.000s 0:03.09 100.0% 0+0k 0+0io 330pf+0w itcl methcall: 1.060u 0.000s 0:01.06 100.0% 0+0k 0+0io 285pf+0w objinst: 2.010u 0.020s 0:02.03 100.0% 0+0k 0+0io 286pf+0w stooop methcall: 2.350u 0.010s 0:02.57 91.8% 0+0k 0+0io 259pf+0w objinst: 4.780u 0.010s 0:04.81 99.5% 0+0k 0+0io 259pf+0w classytcl methcall: 1.040u 0.030s 0:01.07 100.0% 0+0k 0+0io 284pf+0w objinst: 2.990u 0.050s 0:03.07 99.0% 0+0k 0+0io 284pf+0w
These folowing numbers compare the speed and memory consumption for creating 10000 objects. The memory consumption is not only the XOTclObject structure, but as well everything allocated by Tcl as well. The test compares the memory size reported by ps before and after the creation of 10000 objects.
Memory per object creation time itcl 299 33 OTcl 277 72 XOTcl 210 40 ClassyTcl 175 16 Stooop 124 96
all the best
-gustaf neumann