[racket] Long compilation+launch times

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Wed Aug 4 06:51:41 EDT 2010

Well, it is surprising behavior (at least to me). Generally, I would
have expected multiple files to compile more quickly, due to the
option you have checked there. It isn't clear to me if the compiler
does more work to save the intermediate results of compilation than it
does when it compiles a large file; I suppose that tradeoff could
depend on what was actually being compiled, but I would have guessed
that multiple small files would perform better than a single big one.

If you still have the old version, try mzc on the two versions (split
and unsplit), as Noel mentioned, and see if that changes anything.
(Also, and this is probably a dumb question, but you didn't change any
behavior when you split things up accidentally, did you?)

Robby

On Wed, Aug 4, 2010 at 5:33 AM, Laurent <laurent.orseau at gmail.com> wrote:
>
>
> On Wed, Aug 4, 2010 at 11:21, Robby Findler <robby at eecs.northwestern.edu>
> wrote:
>>
>> That is a bit surprising. Does that happen the first time or every
>> time? Do you have compilation disabled in the module language (it is
>> enabled by default)?
>>
>
> "Populate compile directories" is checked.
> This delay happens every time, even when I don't change anything in the
> sources.
> Now that I say it, it looks more like a launch time than a compile time.
> Is there a way to find the compile time alone ?
> Nevertheless, I have lost 20 seconds I think with this split.
> Can this be because each new module must now `require' a number of others
> modules, whereas this was done only once in the previous case?
> All my modules contain only definitions, except for the top-level one. I
> suppose those these definitions are not re-evaluated completely at each
> `require'?
>
> Notably, I have a (auto-generated) 1500 lines module that is required in
> several places.
>


Posted on the users mailing list.