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