One of the issues is that the racket/draw version is not doing the cropping that the 2htdp/image version is doing. Changing the "scene+line" call in utils.rkt to "add-line" cuts the freeze time in half for me (using size 242 instead of 728 in the time.rkt file). I didn't check to see if lines go outside the shape, but if they do, you might consider just using some arithmetic comparisons there in util.rkt instead.
With that change, then I see the time for freezing being the same as the time for the racket/draw version to draw. I tried to find ways to speed up the construction of the image, but I didn't find anything that makes a useful change. It seems like just constructing the data structure that represents the shape has a basic cost and I didn't find any simple ways to improve the situation inside the library. (I tried to cut some corners in add-line but to no avail.) Sorry, Robby On Mon, May 4, 2015 at 10:33 PM, Alexander D. Knauth <[email protected]> wrote: > > On May 4, 2015, at 6:02 PM, Robby Findler <[email protected]> > wrote: > > Another approach here would be to help me do performance debugging of > 2htdp/image :). You could write the code directly as imperative calls > to the dc<%> interface and see how that compares. If there's a > significant difference, that suggests we might be able to find a way > to speed up 2htdp/image. > > > I tried doing that, and here’s what I got: > (time (snowflake/inner-fractal 728)) : cpu time: 14775 real time: 14874 > gc time: 2304 > (time (freeze img1)) : cpu time: 377110 real time: > 377867 gc time: 198343 > (time (snowflake/inner-fractal/draw 728)) : cpu time: 24257 real time: 24267 > gc time: 5852 > Where snowflake/inner-fractal uses 2htdp/image, the result of that call is > defined as img1, and snowflake/inner-fractal/draw uses racket/draw. > The program that produces this output is here: > https://github.com/AlexKnauth/koch-snowflake/blob/master/try-draw/time.rkt > > -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.

