[PD] Re: new pmpd developer

Thomas Grill gr at grrrr.org
Thu Mar 17 15:04:56 CET 2005

i did some profiling of mass2D and here are some more points:

- since the length of the argument lists are checked at the beginning 
of the methods, don't use atom_getfloatarg since it can't be inlined. 
it's better to use a macro instead
- it's preferable to use inverse masses and distances to avoid divisions
- the random generator sucks a lot of cpu power and  can be optimized 
(although i don't get the meaning of the range parameter there)

attached is a diff where all the mentioned points are implemented

best greetings,

-------------- next part --------------
A non-text attachment was scrubbed...
Name: masse2D.c.diff
Type: application/octet-stream
Size: 13047 bytes
Desc: not available
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20050317/2496d9ed/attachment.obj>
-------------- next part --------------

Am 17.03.2005 um 00:06 schrieb Thomas Grill:

> Hi all,
> now i had a look into pmpd - it's a shame i didn't do earlier, and 
> it's great!
> It would be good to do some optimization though - only by recompiling 
> the Windows dll with some different flags and changing a bit of 
> suboptimal code the demo-patches were up to 3 times faster than 
> before.
> - in many methods in the source gensym calls are used, although they 
> generate the same symbols at every call - it would be good to generate 
> these symbols in the setup functions and cache them for use by outlet* 
> calls.
> - pow(f,2) is used instead of f*f
> - reference expressions are often repeated verbatim, although they 
> could be replaced by a pointer
> - the makefile in the src directory has no optimization flags at all 
> for msvc++.  It should have /Ox  /G7 or similar, depending on the cpu
> best greetings,
> Thomas
> _______________________________________________
> PD-list at iem.at mailing list
> UNSUBSCRIBE and account-management -> 
> http://iem.at/cgi-bin/mailman/listinfo/pd-list

More information about the Pd-list mailing list