hi Thomas,
Thomas Grill wrote:
In principle PD handles the lots of symbols quite well (i generated about 3000000 different ones), but naturally symbol retrieval becomes slow then. In one occasion PD crashed but this seems to be attributable to Win2K (which
I am afraid Pd looses any possibility to do audio much sooner than
3e+06 figure might suggest. On an 866Mhz linux, a simple patch using
[+ 1]<->[int]->$1-nn' driven by [bang~]->
3'->[until] hits the
barrier at around 500000-nn symbol, both at first pass, and also
during retrieval.
Btw. (as i now understand how gensym works...) it seems to be fairly easy to include a function into pd that frees a symbol. The only difficulty is what to do with the s_thing pointer attached to a symbol? Free its memory as well or not?
This is usually a pointer to an object, and I do not think one is supposed to simply ``free memory'' of an object...
Besides, I would generally be afraid of getting rid of a symbol, which is bound to something, because this might indicate the symbol is shared. If symbol was to be freed, I would prefer s_thing field to be null in the first place. But your case may be special (and I may be totally wrong here...)
Krzysztof