t_symbol simple question

petrus04's icon

Hi,
I want to make communicate maxmsp to another proprietary software via tcp protocol.
I want to make the protocol as fast as possible between the two like there will be a large quantity of datas and different targeted objects datas sent between the two softwares.

The system will include a management of objects present in max and in the other software, so that max patch will only have to send some message (name of the target object + name of the class + + type of datas + list...).

To optimize the network protocol, i want to convert symbols living in max patches messages (or autopattrs) into value pointers : convert the strings into a unique id int16 or int32 know from the two softwares).

To allow a huge quantity of different pointers (thousands or possibly millions), i would want to avoid a string comparison methods inside my max object.

Is it possible in maxsdk to "scan" a patch, find the messages box attached to my c external, and only compare, i believe, t_symbols pointers to quickly find the id of the message?
Same question asked easier :
Do a message box contain a t_symbol pointer?

If yes, i can compare a "t_symbol" table, it could really lower my cpu usage...

If anyone can only say me where to look for in the sdk doc, it would me nice.

thank you !

petrus04's icon

thank you very much for this informations.

Anyway have you “measured” efficiency bottlenecks or is it just assumptions ? Take care about premature optimization, and take care to understand well the t_symbol pool mechanisms before going that far in convoluted designs.

yes you're right, i know the danger about premature optimization, but i just thought that,
in my targeted softwares, i use to create manually at least ten or hundred thousand of objects, so i am looking for an efficient way to point as fast as possible to the objects via network without comparing each object's name one by one by strcomparison method.
Comparing into a int[] pointer is much faster than comparing possibly large string[].

petrus04's icon

nice thx a lot, i look at this and will post later if everything goes good.

petrus04's icon

I am coding an efficient UnityMax communication (and other game engines...protocol) like osc is quite slow, and not really designed in a tcp mind.
Unity can instantiate a huge quantity of objects (you can do it by hand easily too), and the existing "mu" plugin is not well designed (i mean for optimization) in the unity c# part.
In game engines, you manage objects mainly by their name like in 3d editors, typed by hand, or script generated.