From: David B. <dav...@da...> - 2007-02-16 01:52:44
|
On Feb 15, 2007, at 5:50 PM, Josh Cherry wrote: > I'm still using an older version of SWIG. Part of my reason for not > upgrading is the impression, from my own experience and a comment > on the > email list, SWIG has become slower and generated code size has > increased > (see http://sourceforge.net/mailarchive/forum.php? > thread_id=20109963&forum_id=46758). > > I've done some tests that confirm this. So that others may replicate > them, I have compared two release versions--1.3.25 and 1.3.31--and > used > them to wrap many copies of the same artificial class for python > (details > below). What I found, wrapping 1000 copies of the class, was that > > 1. SWIG 1.3.31 takes more than three times as long to run as > 1.3.25. > > 2. 1.3.31 consumes about 45% more memory than 1.3.25. > > 3. The generated C++ source file is about 36% larger with 1.3.31. > > 4. The shared library produced is about 52% larger with 1.3.31. > > I can add that the SWIG slowness is not in the preprocessor step: > running > SWIG with -E takes a tiny fraction of the whole run time. > > I would love to take advantage of all the great recent SWIG > developments, > but these issues prevent me from doing so. > Having come back into SWIG somewhat recently myself, I would agree that there is far too much bloat in the system right now. I'm especially concerned about your observations on the size of generated code. Is this coming from changes in the typemap library or somewhere else? It's definitely something worth exploring. Cheers, Dave |