I noticed i am using the pl- functions so I replaced th-place.rkt with a stub 
and saw more time shaved off, this time about 15ms for each racket/place import.

Under what circumstances is th-place used instead of '#%place and needed?

Nate

> On Nov 24, 2020, at 12:31 PM, Nathaniel W Griswold <[email protected]> 
> wrote:
> 
> I seem to remember there being some global namespace. Since every reasonable 
> place will require racket/place, might it be possible to make the 
> racket/place import a special case and stick it in the global space, to 
> improve place setup time? It would be nice to be able to only set up 
> racket/place one time instead of once for each place.
> 
> Nate
> 
>> On Nov 24, 2020, at 12:24 PM, Nathaniel W Griswold <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> Actually, it cuts about 20-25ms off of a single import. Down from 185ms to 
>> 165ms for me. 50ms off my startup time of my app on average, since i 
>> basically stack the import twice and sync on the place being ready.
>> 
>> Might be worth including and seeing if there’s anything else that can be 
>> shaved off.
>> 
>> Nate
>> 
>>> On Nov 24, 2020, at 12:09 PM, Nathaniel W Griswold <[email protected] 
>>> <mailto:[email protected]>> wrote:
>>> 
>>> I checked into it a bit.
>>> 
>>> racket/fixnum, racket/flonum, and racket/vector are needed by 
>>> “private/th-place.rkt”, which is required by racket/place. Not sure why 
>>> DrRacket is saying that it’s not needed.
>>> 
>>> racket/runtime-path does not appear to be needed.
>>> 
>>> I tried removing racket/runtime-path and racket/match but didn’t see any 
>>> performance gains. It appears the delay is elsewhere.
>>> 
>>> Nate
>>> 
>>>> On Nov 24, 2020, at 9:52 AM, Robby Findler <[email protected] 
>>>> <mailto:[email protected]>> 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 <[email protected] 
>>>> <mailto:[email protected]>> 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 <[email protected] 
>>>> <mailto:[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] <mailto:[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] 
>>>> > > <mailto:[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] <mailto:[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] 
>>>> > > >> <mailto:[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] 
>>>> > > >> <mailto:racket-users%[email protected]>.
>>>> > > >> To view this discussion on the web visit
>>>> > > >>
>>>> > > 
>>>> > https://groups.google.com/d/msgid/racket-users/CAM-xLPpvfCHHDDpfNmuTWQOyfYfEJ7v
>>>> >  
>>>> > <https://groups.google.com/d/msgid/racket-users/CAM-xLPpvfCHHDDpfNmuTWQOyfYfEJ7v>
>>>> > > >> m1c_dS7nj3FxaEFVm2Q%40mail.gmail.com <http://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] 
>>>> > > <mailto:racket-users%[email protected]>.
>>>> > > > To view this discussion on the web visit
>>>> > > 
>>>> > https://groups.google.com/d/msgid/racket-users/CAM-xLPqtJrem4j%3DUi3fbrduoahsXC
>>>> >  
>>>> > <https://groups.google.com/d/msgid/racket-users/CAM-xLPqtJrem4j%3DUi3fbrduoahsXC>
>>>> > NNA2JPuB0Tt9dissiu5KA%40mail.gmail.com <http://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] 
>>>> > <mailto:racket-users%[email protected]>.
>>>> > To view this discussion on the web visit 
>>>> > https://groups.google.com/d/msgid/racket-users/CAM-xLPqVgEBvrRzjU7%3DX_h3Wy_YUH
>>>> >  
>>>> > <https://groups.google.com/d/msgid/racket-users/CAM-xLPqVgEBvrRzjU7%3DX_h3Wy_YUH>
>>>> > 11G6CX5%2BKjSct26pi3oEA%40mail.gmail.com <http://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] 
>>>> <mailto:[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
>>>>  
>>>> <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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/7AE1B364-8DE1-435C-8AA2-EBCFE078040D%40manicmind.earth.

Reply via email to