ricardo lafuente
2009-06-20 17:51:19 UTC
hey guys,
after the file structure refactoring, i couldn't help taking another
stab at finding the bottlenecks in the transform code.
it turns out that after
- removing individual path transforms, which breaks stuff like
rect(0,0,10,10, scale=(2,2)), but that won't be hard to put back again
and is a bit pointless anyway
- having the canvas directly process the drawables as Bot passes them,
instead of building a drawables stack that get drawn in the end of the
loop; then it applies the Bot transform matrix instead of the one in the
drawable
- and doing some cleanup on the canvas drawing code,
stuff looks quite a bit faster to me. My eee shows something like a 2x
increase in speed in the planets script that Stu sent to the list some
months ago.
if you feel like trying the new code, get it through
hg clone http://bitbucket.org/rlafuente/shoebot-filestructure
the script i mentioned is in examples/basic/transform/planets.bot (in
the main branch it's in examples/nodebox/transforms_stress_test.bot IIRC)
can any of you guys test it to make sure i'm not seeing things?
:r
after the file structure refactoring, i couldn't help taking another
stab at finding the bottlenecks in the transform code.
it turns out that after
- removing individual path transforms, which breaks stuff like
rect(0,0,10,10, scale=(2,2)), but that won't be hard to put back again
and is a bit pointless anyway
- having the canvas directly process the drawables as Bot passes them,
instead of building a drawables stack that get drawn in the end of the
loop; then it applies the Bot transform matrix instead of the one in the
drawable
- and doing some cleanup on the canvas drawing code,
stuff looks quite a bit faster to me. My eee shows something like a 2x
increase in speed in the planets script that Stu sent to the list some
months ago.
if you feel like trying the new code, get it through
hg clone http://bitbucket.org/rlafuente/shoebot-filestructure
the script i mentioned is in examples/basic/transform/planets.bot (in
the main branch it's in examples/nodebox/transforms_stress_test.bot IIRC)
can any of you guys test it to make sure i'm not seeing things?
:r