Les DynamicObjects de Golo en version sur-vitaminée

Juste une petite news rapide sur Golo.

Il y a quelques jours je prĂ©sentais sur ce blog diffĂ©rentes façons de vivre sans les classes : “Golo, en attendant les classes”. A la fin du post, je faisais un petit bench en concluant que mon truc prĂ©fĂ©rĂ© dans Golo, le DynamicObject, n’était clairement pas optimisĂ© par rapport aux structs (qui viennent juste d’apparaĂźtre dans Golo) et mĂȘme si le DynamicObject est trĂšs puissant, il n’est pas rapide, et donc pas conseillĂ©.

Et bien, le Docteur me fait mentir. L’implĂ©mentation des DynamicObjects a Ă©tĂ© revue et c’est testable depuis toute Ă  l’heure. Donc ni une ni 2, je rentre Ă  la maison pour tester. AprĂšs un git fetch jponge, un git checkout wip/dynamic-object-performanceet enfin un rake special:bootstrap, je relance mon bench et lĂ  Miracle :

duration for 100000 DynamicHumans : 975 ms
duration for 100000 FakeHumans    : 716 ms
duration for 100000 StructHumans  : 272 ms

contre, (avec la version précédente de Golo) :

duration for 100000 DynamicHumans : 11840 ms
duration for 100000 FakeHumans    : 738 ms
duration for 100000 StructHumans  : 224 ms

Les DynamicObjects sont devenus 12 fois plus rapides et redeviennent donc fréquentables.

I’m happy ;) thx Doc.

blog comments powered by Disqus

Related posts