I didn't check to see if removing those has a significant performance
effect, but the remaining requires seem pretty minimal.

Robby


On Tue, Nov 24, 2020 at 10:26 AM 'Nathaniel W Griswold' via Racket Users <
racket-users@googlegroups.com> wrote:

> Cool. If this is indeed the case it might be nice for someone (maybe me)
> to cut it down, since any nontrivial place will of course require
> racket/place and that is kind of a long time.
>
> Nate
>
> On Nov 24, 2020, at 9:52 AM, Robby Findler <ro...@cs.northwestern.edu>
> wrote:
>
> DrRacket thinks that there are no references to a number of the requires
> in racket/place, including racket/fixnum, racket/flonum, racket/vector, and
> racket/runtime-path. Not sure if that's an error on DrRacket's part (and I
> don't see why those would be needed for their effects).
>
> Also, the only use of racket/match seems to be this, which seems simple to
> rewrite out.
>
>     (match name
>       [(? symbol?) `(submod (quote ,name) ,submod-name)]
>       [(? path?) `(submod ,name ,submod-name)]
>       [`(,p ,s ...) `(submod ,(if (symbol? p) `(quote ,p) p) ,@s
> ,submod-name)])
>
> Robby
>
>
> On Tue, Nov 24, 2020 at 8:58 AM Nate Griswold <nategrisw...@gmail.com>
> wrote:
>
>> 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 <mfl...@cs.utah.edu> 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 <
>>> sa...@cs.indiana.edu>
>>> > 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 <
>>> nategrisw...@gmail.com>
>>> > > 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
>>> > > <nate@manicmind.earth> 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 <mfl...@cs.utah.edu>
>>> 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 racket-users+unsubscr...@googlegroups.com.
>>> > > >> 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 racket-users+unsubscr...@googlegroups.com.
>>> > > > 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 racket-users+unsubscr...@googlegroups.com.
>>> > 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 racket-users+unsubscr...@googlegroups.com.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/racket-users/CAM-xLPoLD6N%3Dwep%2Bed5UGduA7mZ-SaYxFJ9VbqM78CppMG3m2w%40mail.gmail.com
>> <https://groups.google.com/d/msgid/racket-users/CAM-xLPoLD6N%3Dwep%2Bed5UGduA7mZ-SaYxFJ9VbqM78CppMG3m2w%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>
> --
> 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 racket-users+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/racket-users/315E2C2B-F314-4044-8ACC-1D66288BCCFB%40manicmind.earth
> <https://groups.google.com/d/msgid/racket-users/315E2C2B-F314-4044-8ACC-1D66288BCCFB%40manicmind.earth?utm_medium=email&utm_source=footer>
> .
>

-- 
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 racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/CAL3TdONdva00xyAQxLGwdCt6_MfNoC0-%3DHnBUvMJk_zrKR9Txg%40mail.gmail.com.

Reply via email to