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.

Reply via email to