jamoma / JamomaCore

Jamoma Frameworks for Audio and Control Structure
Other
36 stars 14 forks source link

Optimise TTDataParseCommand #314

Open theod opened 9 years ago

theod commented 9 years ago

this function consumes too much cpu. maybe a solution would be to have a dedicated data structure to store the ramp or unit option instead of storing them into a TTDictionary ?

tap commented 9 years ago

How do you know this function consumes too much CPU? Were you profiling with Apple's tools, or have you written some instrumentation code for it? Can we figure out where the CPU is being burned more precisely? Maybe TTDictionary needs some optimizations?

I'm happy to assist with this.

theod commented 9 years ago

I've just discovered how to use Xcode Time Profiler Instrument (great !) and Julien made me a test performance patch where some operation takes 3600 ms when using j.remoteArray and j.parameterArray communication instead of 2 ms when using simple Max connection.

This tool have been really useful as I've manage to reduce the time to 2000 ms.

Now I can see there is 9% of the time which is consume inside the TTDataParseCommand and it seems TTDictionary::setSchema() and TTDictionary::setValue takes 3% each.

theod commented 9 years ago

Here is the test patch @jln- made :


----------begin_max5_patcher----------
4142.3oc6c0rbaiiD9rySAKU6gcmxiBZ7CAwdJys8xtu.oR4hVh1gYjnTQR4
jYlZtu6q49jrfDfxTxRVPR.PTZwjJNiIsLa90MZ.1eerwe7g6F83hejUMJ5u
G84n6t6O9vc20dnlCbm96uaz7zeLYVZU6O1nz55xU4itWcpmVTTWk+6YMmBv
iQ5CWrZddwrr51OBnO3xz5IeMu34GJylTqtjLPH+LQj31+AXnl+AK+ZzWd82
zhU0a+qp4xVjNu8xN5WJySm0YPMlW6QeZQ47z5tCmOs8fKd7a+LP6Nn5Wb8u
sLSYMiFE8kly7me3CMe49KAhjPaw.Jf7Hh.CYDAvBEjHXdDRPVFRlrX97rh0
Wp5rezd6M5+9e92QQDABEMu5..1SkO+XygPGODJXhwLI1kjzfc7CgfnChf8f
pX5HKhGYEQoSmVlUUkVTGMKqJJsrL82hdIOM5m59omkWjMYwph1OB1Jn1iqd
7wYYGBGQTUhJpJTj29OzjiCH+GYydIqNeRZz+JaU1nMLfFbXdZ4y4EslBZGv
MoOlMYwrEkJiCMlbeuu.MFk0CTicbfJEhGyRHDNsAkicPzJdjsAELwoXhfSd
ERXsQbwDqBIf8gDrSgjXFtc7mJclkQCj0QChKwBLMoGVvr5fElvxo1mlW0dK
zka+kzYYqJaStOuIk+yYpz8W5D8XTRatGfPuXI5YwWlD862MIOy+L8GQ+0UE
eaQdwe6hOaLCgt3NIlacREYeWdYdiOZYY1xrhoQUY0184NXfZNW5YuF69fjs
e9hCiJQUkSd36Y4O+UaAPBFoYIzTtNliYUDB6GD5aiWlVJMl5rxeocY0JHJq
pFO9y3uD8olK7lofMA1vG94YIswUX0R5dGXibTvFY+v185+t95rwfS98ceAX
wBB0ciPWGGFgs0CDyZ+PQwb0L+XqFJhStPghUKVUNIaL9iSkgi4Eo04KJF+Y
.+kOpwOUv4zrI4ySmE8I0ytqe7vO0.204MelpO9T9L4u0HXmSPQsSbcmSfwD
8WJpkBrombfMFg3j66Eg693ZvxE5wMw0T5kMtFtRhq0NAGEWmbwiqcRsIYXt
0qMY5j57Wx10rdHOsbJKCRjj1PJJFr4ynh4i5eoyJ02n56T4uk7YYujUVIGB
0yPk.8xk8N7c89HMvy2Tgdw2u9P4EpCAqOTY1K4ce9W+ASKk.Ps7teUoxx+Q
R7H0IktjOz8QW+nlsfhl.DHtcRkDduGhQ58dd1hI+Z1zdXiz2KSCmWHSGWIe
Ht1jJab5oYOktZV8C612s44eJcR1d+v6zAb2nmKymtnnwH13S1b3tKWyjjpQ
E8uYZ+IJRWtiObk79XU0iokMvp94+vcmrdwhYadp0dRYzcZgL4YsLSoxXkYK
5NY97kk4pTjqOVVQp72wWqlTtX1rM9UoNyK63LSkN6IYeOeZ8W23AXaNi7GO
eYmKXzZLZZ9yxT9adr5zmq17Hav.W+nv9Ca233u2v2smLpLa9h5rnOtyUWg+
3FOhz6LXeuC32aI5TkihpFqCuYY+6XXOcKqX2QdaM7WP5eh8OqR+YVNlYWtq
Kcpd7q28QD24iT03hoFk5ReD9F2GQcmOBPTUUsDt1IA23NIlCcR31osowN2I
gtwcRwNzIoqDEE6XmTh3F2IwcnShknj+BqoXqtzIkbi6jRbnSh25VHBm6j32
3NIgCcRBZmz5brSJ9F2IAH24kvppHSnJuDl3LuD6V2KANzKQTEvBq8RXm4kn
25dIGVxAsRXHHv0ikt5q4fRAGRv1AtAUMvU0V.+VZx2UQwImjW3HppfI+cnL
BwcCPTdFVbhqWQv0QoDZwsQ6CKQlfkpGoTSTI68Cx2MVAGHi+V3iRxVs0OdG
HwqUYugZv8TT41allyuaHRETpu7ciyhfMridwq89AaJEazlPvWymNcyh7qpK
dUSU1U7YXjC8jrYrI1LdXYyDSrYXXYyTSrYzvxlYFXyM0wYHYywlXyICKala
hMyGV1bhI1b7vxlElXyrgkMCHSLZ5.ynMYlvjA1LgFAzCmYU.po1rsl8Vutx
N8YLpJ8kroOHuDx068PihbxebUsZAU8kVx4JhhCKRiiPYA6zHdmK99tnOOaw
ioyzhoY8mcGBX3CuBhCTAGQItPvQwW4BNR+xSo0uJpEbhonfhiBJNxAU2.7r
hiXrfhiNOej6UbDVDTbz44ibuhiXHRPwQmmSxCJNJgDTbz44j7fhiXwAEGcd
NIOn3HrHn3nyyI4dEGQQhfhiNOmjGTbTBIn3nyyI4CEGESBJN5L8RdPwQTRP
wQmoWxCJNRqV4fhitjJNBTcClfjiN9gHNWxQI3fjiBRNJH4nfjiBRNJH4nfj
iBRNJH4nfjiBRNJH4nKrji5dxHUq55iEKpkVvg5DcVp0HBBDu+K6r.e.YJQO
FYJAX3v8Zq82usD3lFiXyiAInBDt4+AwPhjqoFkHFTBMfq2LEraCkCvnKTGk
yrnzgUekqyWvRbQekC.wo1X47df9Q2cUgCmBgPZgyD6Ffi39I.uZR5rL4jp.
BgjvuD3OF3I9vvClnB5PVFercqR8oYKj1yNu4ImPrAospa.S0aBaD5odaD.C
6EAvGGBHdUKr5TTOnDzXeY09FzQde1rqqDM5wzhmsaOKLZxxUMZxrzZSRqQQ
USFOla0Hn2YalQgQquJWmZMlolxERTRNVnGMxchVigwLACR3AAGeyI3X0niQ
mHIDc6O.DiqbNZOUNezdpLtD8yJeQtJq7hn4UQ4UQxI6WTVmMMRNnMajen44
wHXuT3r0fiiWTnsCcUclYcytUXL4CFSiy6yuVuYKbOXJmGYRShIGincpsM1U
P56ybb2rL9AS+YYNkSFOwFMHW8J+nmy1AvIc.AmNb7tRXCtd3N6+eFtS4sQj
tdzdruCOOKFs04.o7ykRatIAR6Yt6lyFUUuXYUjbsURCLJU9T5p4ukSkqmYe
zPAyTiLOeHK47grzF.RiYuGN4FMBXXA6GNLPwMzhGN5CH1PKl9F4ZborXlgV
7vgKUSIdZ3vUF4HhJFFVroDRRtA416sUEwWD7s8U1Cr7Ig0Z480wVozD8dL6
5c8NiJw2FExa+jsY8ZbVG8Xzi1h.A8stpm.jn5bhHKUcX.+9fhKJ.7peOukG
AaU9WM9newks5tWG.Dyvm6aKvjUgI4CBLU861NLshzaBuJhVhQ1sJ4T+M35k
rerrL5u7DD8Sxuhi9TC4TokyWLM631nyLf3ern+1Ht8fKlkokRu079FrBh14
erDJsNlJVucvoJCQhsPoXewd+9UXB3IElPz5u2xJLA3CKElX2s1MgZzIgoYQ
0Gasa.j34sJWGrMNpC5bjpaPrgfpatV1MG09BV21GDypptAQF7ptwcZKQ2jw
v3DGnsDNdPKsD8a7Hn1NmcgzR3jadkkzAhpWaT6prDNMHrjfvRBBKIHrjfvR
BBKIHrjfvRBBKIHrjfvRBBKIHrjfvRBBKIHrjfvRBBKIHrDGKrDLq8oF.xoJ
rDN6JUWI56bJXeckviu9kUhFdTL+aWYkv42JpJAnJ9EzTrXWUkvStwDURGeT
ITGHpDt3lPSIqinzuSz1USIIdpgPzLLqA+h9IKMPSnhYHz17zbqNNiJtxah.
I5NtHg6.ddIvPlm2jXECkp8TGWPyKAeqSyaGFRv1mkWBIvxafk2.KuAVdCr7
FX4Mvxafk2.KuAVdCr7FX4Mvxafk2.KuAVdCr7FX4MvxqaY4MQuSIiOURdIz
qSRd023p2LR6xwKgc0ywqFcRn1mhWRxsBEuBQbOxUrKCuTzsECucDQIHNffW
JbSPvaW7TbrC32khuHsL.0KVrbxU73Oi+hcClHIn1BKDSrYmAffNmFC.e8Nv
Wy6HLgZ82I3W2NDWCsis0dNQLk1.nDpBWwfMwUr3rwUHIFHv1augCbJ3Yf50
Wuai9ztcTf3gLE7LU7jd+xvIMwe9sNE7cXHk4fV3eRfB9.E7AJ3CTvGnfOPA
efB9.E7AJ3CTvGnfOPAefB9.E7AJ3CTvGnfOPAefBd2RAOUUdpSmBdL55jBd
8Mth9F6RAOFt5ofWiNphVZWJ3w3aEJ3i0DIqHWwtTviI2VTvqIhhfhc.E7X5
MAE7cwSbgCnfGy7KE78oH1VMH8tfHmPQLLroHdcemOq1tnIU8Vqyo1bDovyM
i+r5dMjeakdGqvGcaJmXWUCcg5E+uNn7y3una49ssXeKmmWH5sq1XqkNHRN0
tlu8FdtuoFdIO66OrZ4zTYpOq0raT6vT71IBz5XvV6hKrq7lKA.L2orEJePu
IBnm+ycJagxt42CAzXXrCT1BMNnrkfxVBJaInrkfxVBJaInrkfxVBJaInrkf
xVBJaInrkfxVBJaInrkfxVBJaInrE2prE8xbO8dKg35TXKp66DGnqEB+pWWK
JvA.GnqER7ESWK6XOI2VuU1.gzmDTKukjSt92y1UkJVy2oswGr+ZK9VTWTXN
3LcQcqs2SnCevtPVT7aBUQ0EM4DUQY6NXv2xqGu764ESW78ic8JDBebr7+jK
sJhiTcFp0CfNvz26nX66QhD1UbIxrFKi9zz74YEMrJVEIGkHsvGTqUe821ac
4UQ.1tod0xifvrZiXALULXm.b17rBqxsEJHTkaiwTiOXme51F6SYnSpyeIaW
q0wxCabChnSUXSD4oEkySq2AhXpbZZMgMqXlBf19oe0vzadpWwFkHaOOxqXi
el273tu8Qcei+5nLG3.lC0eliAfC3MqoYaM5flSyFDUODzo1iAlSr2PGtINK
LefYOdDeLwcsUHlSsGtAC04TuEM2ZO3CYOX+gOwlLZm6W6wH+kmrGlI3iGGe
QMwdH9ydvlNagmrGSlKkLrLG+MZ2nA6dKWHiXvXcl+PGFw.3g4uUhwvCL6AF
TKTkYxBUoICL6we4dLYlK.DCK6A4O7gZxRma5ssdJcH0jkNS82RenbCmsvSl
iISdQY9ydnVHa377oKWjWTWsdWcVztm7BwJlP2w2wh0alwz0e2qFg8t6LYtP
r+RtRMYtvltZtuFrBll7vS3iQS93u0RQGTE7iXTpd+kKiXRAHIDuEM2ZOGpp
DD+szNhIUsgF6W64fwOdzdhMveQ490dLxe4o3YSVqIweyd0ZOFMd2S1iIomI
9asTDSVsAweydQ.SWsgmrmA1ixQFXOJGNwAqEmggdq9VPPu867yZwwljMC6O
NLvlj8.6unQirGON5.azyN4urqMMurCN6Cj3u3GrAqdA72povljsGi8q8Xj+
xS1iIOaI1eyFBFks2eq9EhMM+rmrG1fpN8fQ0Bvegy.YXAOFM75HW7BFHIsK
WQsIHAPr5sndyu0OKeAvCK7FLRuUXjGsHiRn4yLrlYQ9LGqQIYAf4sUw.lkl
E4SLxnEB6wUVAfIT7C.xidMhIK9D4woiLK+nGEshxhLyq4KKxHoG3Qkzr8c+
9hiDdzhLQsHdLJBkXbFaeYQ7g17rlYQ9bdVDyAkRS.wcqFss0yvXi46368z5
QQlU9ReFXNrTxDLvTxDXvT1mZpe061xVMoxFCYqlS4VMlx21TJ2WCoTdc9yO
7+rrbt.O
-----------end_max5_patcher-----------