Oh, interesting. So compilation breaks the submodule out from the modules
if possible?

So anyway, it sounds like breaking my modules out into separate files will
improve performance in most cases.

Unfortunately, i need racket/place in the module that is my startup
bottleneck. If i modify the previous program to require racket/place and
compile, it takes around 180ms.

This is about what i can expect for a module that requires racket/place,
then?

Nate


On Tue, Nov 24, 2020 at 8:48 AM Matthew Flatt <[email protected]> wrote:

> Just to elaborate a little more:
>
> The difference is because the `test` submodule can be loaded
> independently from the compiled form. Loading the submodule from source
> requires loading the enclosing module, too (which depends on
> `racket/place` and more).
>
> At Tue, 24 Nov 2020 08:46:12 -0600, Nate Griswold wrote:
> > Awesome, thanks!
> >
> > Nate
> >
> >
> > On Tue, Nov 24, 2020 at 8:44 AM Sam Tobin-Hochstadt <
> [email protected]>
> > wrote:
> >
> > > Almost certainly the problem is expansion time. If I run that program
> > > on my machine, it takes about 200 ms. But if I compile the file to zo
> > > first with `raco make`, then it takes about 40 ms, basically identical
> > > to `racket/base`.
> > >
> > > Sam
> > >
> > > On Tue, Nov 24, 2020 at 9:39 AM Nate Griswold <[email protected]>
> > > wrote:
> > > >
> > > > Oops, i am having some issues with not getting to the list from my
> other
> > > email address. Here is a reply i sent for the record.
> > > >
> > > > ---
> > > >
> > > > Thank you, Matthew.
> > > >
> > > > The following code takes around 250ms on my machine. Any idea why? I
> was
> > > expecting it to be fast since the module is based on racket/base.
> > > >
> > > > #lang racket/base
> > > >
> > > > (require syntax/location)
> > > > (require racket/place)
> > > >
> > > >
> > > >
> > > > (module test racket/base
> > > >  (provide place-main)
> > > > racket
> > > >  (define (place-main pch)
> > > >   (void)))
> > > >
> > > > (time (place-wait (dynamic-place (quote-module-path test)
> 'place-main)))
> > > >
> > > > Nate
> > > >
> > > >
> > > > On Tue, Nov 24, 2020 at 8:35 AM Nathaniel W Griswold
> > > <[email protected]> wrote:
> > > >>
> > > >> Thank you, Matthew.
> > > >>
> > > >> The following code takes around 250ms on my machine. Any idea why? I
> > > was expecting it to be fast since the module is based on racket/base.
> > > >>
> > > >> #lang racket/base
> > > >>
> > > >> (require syntax/location)
> > > >> (require racket/place)
> > > >>
> > > >>
> > > >>
> > > >> (module test racket/base
> > > >>  (provide place-main)
> > > >> racket
> > > >>  (define (place-main pch)
> > > >>   (void)))
> > > >>
> > > >> (time (place-wait (dynamic-place (quote-module-path test)
> 'place-main)))
> > > >>
> > > >> Nate
> > > >>
> > > >> On Nov 24, 2020, at 8:16 AM, Matthew Flatt <[email protected]>
> wrote:
> > > >>
> > > >> The bottleneck for place startup is loading modules into the new
> place,
> > > >> including modules like `racket/base`.
> > > >>
> > > >> For example,
> > > >>
> > > >>  (place-wait (dynamic-place 'racket 'void))
> > > >>
> > > >> takes around 200ms on my machine, while
> > > >>
> > > >>  (place-wait (dynamic-place 'racket/base 'void))
> > > >>
> > > >> takes around 30ms and
> > > >>
> > > >>  (place-wait (dynamic-place 'racket/kernel 'void))
> > > >>
> > > >> takes around 10ms.
> > > >>
> > > >> It sounds like you're already aware that the complexity of the
> module
> > > >> loaded into a place matters, though. Beyond using a minimal set of
> > > >> modules, I don't have any way to make place startup faster.
> > > >>
> > > >> Matthew
> > > >>
> > > >> At Tue, 24 Nov 2020 05:04:19 -0600, Nate Griswold wrote:
> > > >>
> > > >> Is there any way to make places startup faster? Even if i do an
> explicit
> > > >> round trip using place-channel-put and place-channel-get on both
> sides,
> > > it
> > > >> takes on the order of centiseconds for near empty places to start
> up.
> > > >>
> > > >> My program requires the threads for a couple places to be set up
> before
> > > it
> > > >> can operate, so this impacts my startup time by quite a bit.
> > > >>
> > > >> I have one place that has a very simple module and one place with a
> more
> > > >> complicated module. Is there some sequence that i should do things
> in
> > > for
> > > >> the minimal startup time? It seems nothing i do really helps much.
> > > >>
> > > >> Nate
> > > >>
> > > >> --
> > > >> 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].
> > > >> To view this discussion on the web visit
> > > >>
> > >
> >
> https://groups.google.com/d/msgid/racket-users/CAM-xLPpvfCHHDDpfNmuTWQOyfYfEJ7v
> > > >> m1c_dS7nj3FxaEFVm2Q%40mail.gmail.com.
> > > >>
> > > >>
> > > > --
> > > > 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].
> > > > To view this discussion on the web visit
> > >
> >
> https://groups.google.com/d/msgid/racket-users/CAM-xLPqtJrem4j%3DUi3fbrduoahsXC
> > NNA2JPuB0Tt9dissiu5KA%40mail.gmail.com
> > > .
> > >
> >
> > --
> > 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].
> > To view this discussion on the web visit
> >
> https://groups.google.com/d/msgid/racket-users/CAM-xLPqVgEBvrRzjU7%3DX_h3Wy_YUH
> > 11G6CX5%2BKjSct26pi3oEA%40mail.gmail.com.
>

-- 
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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/CAM-xLPoLD6N%3Dwep%2Bed5UGduA7mZ-SaYxFJ9VbqM78CppMG3m2w%40mail.gmail.com.

Reply via email to