[PD] performance on osX

Mathieu Bouchard matju at artengine.ca
Sat Nov 24 00:00:43 CET 2007

On Fri, 23 Nov 2007, Derek Holzer wrote:

> And PD isn't one of them. PD's GUI has always kept one of it's feet 
> permanently nailed to the floor. The problem is just exaggerated on OSX. 
> Previous discussions, back when I still had time to investigate things 
> like this, pointed to Aqua versions of Tcl/Tk as being a possible 
> offender. I tried getting into recompiling PD against different versions 
> of Tcl/Tk, but found it easier to just use the same computer running 
> Linux for high-performance [PD] situations.

Upgrading Tcl/Tk to at least 8.5a6 will make Tk about as "quick" on OSX as 
it can be on Linux... maybe a bit more or a bit less.

> Wouldn't it be great if there was a way to pipe all the time people 
> spend rambling about political correctness, beer, philosophy and 
> theoretical physics on this list into solving basic problems like this? 
> <duck!>

I don't know, perhaps theoretical physics is easier than messing around 
with Tk's source code ;) let alone the politics of Tcl/Tk (e.g. when will 
8.5 be officially released? which modifications of Tk are considered 
appropriate for merging into the trunk? etc)

I had started making cross-platform optimisations in Tk itself, just 
before Pd Convention 2007, but it's somewhat tricky to speed up some 
common cases without also slowing down some other common cases. During Pd 
Convention 2004, the late James Tittle had identified that the most 
horrible slowdown was due to the least-common-bounding-box algorithm of 
Tk's redraw. What I implemented is a dirty-tile algorithm (make a reduced 
map of the screen, mark areas that have to be redrawn). It's not that 
good: huge speedups are compensated by huge slowdowns in other situations. 
If I modify much more of Tk, I could get to a point where individual items 
can really express their usage of space in terms of tiles instead of 
bounding boxes, so that a diagonal line doesn't take the same number of 
tiles as the rectangle that the line is a diagonal of. This could 
accelerate the dirty-tile method so that it becomes clearly superior to 
the traditional redraw. I believe that it's still easier to modify Tk than 
to switch to a different toolkit.

I'm only talking about cross-platform optimisations, because the 
OSX-specific problem has been already taken care of during 2006.

  _ _ __ ___ _____ ________ _____________ _____________________ ...
| Mathieu Bouchard - tél:+1.514.383.3801, Montréal QC Canada

More information about the Pd-list mailing list