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

