Purpose: provide a place to document various (hopefully '''fair''') comparisons of performance between the various object oriented extensions available for tcl. [[add wiki page name for oo catalog here]] See also [Tcl Performance]. ---- In late Oct, 2001, [Gustaf Neumann] wrote [http://groups.google.com/groups?selm=3d2cbf6.0110211308.2799dc85@posting.google.com] Here is an comparison between a few Tcl OO-extensions ([XOTcl], OTcl, itcl, stoop, and classytcl) in terms of performance and memory consumption. These tests were performed with XOTcl 0.9.1 on a Pentium III Notebook with 600 MHz under RedHat Linux 7.0. The full test with all sources can be found on the download page of www.xotcl.org [http://www.xotcl.org/] best regards -gustaf neumann ================================================================================ These are the usual two shootout (http://shootout.alioth.debian.org/old/) [MS] notes that these benchmarks seem to have been dropped, but can still be found at [http://dada.perl.it/shootout/]. tests: XOTcl methcall: 2.040u 0.010s 0:02.05 100.0% 0+0k 0+0io 283pf+0w objinst: 4.730u 0.030s 0:04.76 100.0% 0+0k 0+0io 283pf+0w OTcl methcall: 4.050u 0.000s 0:04.04 100.2% 0+0k 0+0io 330pf+0w objinst: 9.240u 0.010s 0:09.24 100.1% 0+0k 0+0io 330pf+0w itcl methcall: 3.130u 0.000s 0:03.12 100.3% 0+0k 0+0io 285pf+0w objinst: 6.040u 0.000s 0:06.03 100.1% 0+0k 0+0io 286pf+0w stooop methcall: 6.930u 0.010s 0:06.94 100.0% 0+0k 0+0io 259pf+0w objinst: 14.180u 0.000s 0:14.17 100.0% 0+0k 0+0io 259pf+0w classytcl methcall: 3.030u 0.020s 0:03.04 100.3% 0+0k 0+0io 284pf+0w objinst: 8.980u 0.040s 0:09.02 100.0% 0+0k 0+0io 284pf+0w ================================================================================ This test measures the memory consumption (in bytes) of objects based on the figures reported by /bin/ps. These figures contain everything that is allocated withing Tcl as well (e.g. command structures, namespaces, etc). e.g. 10000 xotcl objects consume roughly 2 MB of memory. creating 10000 objects itcl Used memory: 3002368 Memory per itcl object: 300 Time per object: 33 otcl Used memory: 2777088 Memory per otcl object: 277 Time per object: 71 XOTcl Used memory: 2109440 Memory per xotcl object: 210 Time per object: 40 ClassyTcl Used memory: 1753088 Memory per classy tcl object: 175 Time per object: 17 Stooop Used memory: 1236992 Memory per stooop object: 123 Time per object: 95 Then, in a follow up posting, Gustaf writes [http://groups.google.com/groups?selm=3d2cbf6.0110220626.7b912c76@posting.google.com] Jean-Luc Fontaine wrote in message news:<3BD3DD95.8010908@winealley.com>... ... > It would be fair if all tests were conducted the same way. For example, > loops for xotcl are wrapped in a main{} procedure, thus compiled, > whereas the others (stooop, itcl, ...) do not benefit from such an > optimization... > > Jean-Luc You are right, 3 out of 10 tests of the shootout were without the proc main (both stoop tests and objinst.itcl). I have fixed these and updated the results. best regards -gustaf =========================================================================== XOTcl methcall: 2.040u 0.010s 0:02.05 100.0% 0+0k 0+0io 283pf+0w objinst: 4.760u 0.020s 0:04.77 100.2% 0+0k 0+0io 283pf+0w OTcl methcall: 4.060u 0.000s 0:04.05 100.2% 0+0k 0+0io 330pf+0w objinst: 9.250u 0.010s 0:09.26 100.0% 0+0k 0+0io 330pf+0w itcl methcall: 3.130u 0.000s 0:03.13 100.0% 0+0k 0+0io 285pf+0w objinst: 5.300u 0.000s 0:05.29 100.1% 0+0k 0+0io 286pf+0w stooop methcall: 6.430u 0.030s 0:06.84 94.4% 0+0k 0+0io 259pf+0w objinst: 13.720u 0.020s 0:14.45 95.0% 0+0k 0+0io 259pf+0w classytcl methcall: 3.040u 0.020s 0:03.05 100.3% 0+0k 0+0io 284pf+0w objinst: 9.030u 0.030s 0:09.67 93.6% 0+0k 0+0io 284pf+0w ---- 19 oct 2002 : Maurice Diamantini "diam at ensta.fr": And what about adding a [Snit] benchmark? Snit is as nice et simple to use tcl only OO system based on delegation. [LV] 2007 June 06 - it would also be interesting to add timings for the new proposed Tcl core OO [TclOO]. ---- [Category Object Orientation] | [Category Performance]