OO Tcl: some benchmark results

1 view
Skip to first unread message

Gustaf Neumann

unread,
Oct 21, 2001, 5:08:53 PM10/21/01
to
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

best regards
-gustaf neumann
================================================================================
These are the usual two shootout
(http://www.bagley.org/~doug/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

Jean-Luc Fontaine

unread,
Oct 22, 2001, 4:49:25 AM10/22/01
to
Gustaf Neumann wrote:

> 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

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

Gustaf Neumann

unread,
Oct 22, 2001, 10:26:10 AM10/22/01
to
Jean-Luc Fontaine <jfon...@winealley.com> wrote in message news:<3BD3DD95...@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

Reply all
Reply to author
Forward
0 new messages