Updated 2007-09-10 13:23:51 by miguel

XOTcl Is Not Snit

Sarnold 2005-10-05 -- I am trying to emulate snit with an XOTcl class...
 What : Xoins
 Where : http://sarnold.free.fr/
 Version : 2006-02-20 v0.5, patchlevel 1
 Description :
 Xoins is a package emulating snit with the same syntax. A great speed improvement is achieved
 by building types as XOTcl classes. Switching from snit types, widgets and widgetadaptors
 may only require a 'package require xoins', and then renaming 'snit::type' to 'xoins::type',
 widget and widgetadaptor require the same process, maybe more transformations if you are unlucky.

Has the speed improvement been quantified? Are there examples? - escargo 29 Sep 2006.

There are two examples and a snit vs xoins benchmark in the .zip file. xoins typically is twice faster than snit, and much more for object instanciation. - Sarnold 1 Oct 2006

schlenk Is this vs. snit 1 or the Tcl 8.5 using snit 2 (which is much faster in some operations)? And with which XOTcl version did you test.

MS notes that snit2 got much faster at dispatch since Tcl8.5a6 (bytecompiling [namespace upvar]). Any newer benchmarks?

Sarnold updated on 2006-10-09 Here are benchmarks with Tcl 8.4:
   Snit 1.1 vs Xoins (XOTcl 1.4.0 & Tcl 8.4.13)
 Creation and destruction...(using %AUTO%)
  Snit : 896.06 microseconds per iteration
  Xoins : 171.11 microseconds per iteration
 Creation and destruction...
  Snit : 889.28 microseconds per iteration
  Xoins : 159.28 microseconds per iteration
 Method call (not delegated)
  Snit : 21.44 microseconds per iteration
  Xoins : 13.047 microseconds per iteration
 Method call (delegated)
  Snit : 18.475 microseconds per iteration
  Xoins : 13.525 microseconds per iteration
 Option setting
  Snit : 21.703 microseconds per iteration
  Xoins : 8.08 microseconds per iteration
 Option setting (delegated)
  Snit : 70.701 microseconds per iteration
  Xoins : 34.774 microseconds per iteration
 Option getting
  Snit : 12.728 microseconds per iteration
  Xoins : 5.123 microseconds per iteration
 Option getting (delegated)
  Snit : 26.567 microseconds per iteration
  Xoins : 15.748 microseconds per iteration

With Tcl 8.5a2 and Snit 2:
   Snit 2.0 vs Xoins (XOTcl 1.4.0 & Tcl 8.5a2)
 Creation and destruction...(using %AUTO%)
  Snit : 594 microseconds per iteration
  Xoins : 229 microseconds per iteration
 Creation and destruction...
  Snit : 580 microseconds per iteration
  Xoins : 200 microseconds per iteration
 Method call (not delegated)
  Snit : 18 microseconds per iteration
  Xoins : 16 microseconds per iteration
 Method call (delegated)
  Snit : 7 microseconds per iteration
  Xoins : 14 microseconds per iteration
 Option setting
  Snit : 17 microseconds per iteration
  Xoins : 8 microseconds per iteration
 Option setting (delegated)
  Snit : 58 microseconds per iteration
  Xoins : 32 microseconds per iteration
 Option getting
  Snit : 6 microseconds per iteration
  Xoins : 4 microseconds per iteration
 Option getting (delegated)
  Snit : 15 microseconds per iteration
  Xoins : 15 microseconds per iteration

The following Snidgets work fine with Xoins:


See also itins, Snit, and of course XOTcl.

Category Object Orientation