Awesome. Also I didn’t know you could include ‘#%place like that.
Nate
> On Nov 25, 2020, at 9:41 PM, Sam Tobin-Hochstadt wrote:
>
> Here's an in-progress PR: https://github.com/racket/racket/pull/3518
>
> With this, your simple test takes about 150ms with `racket/place` and
> 50ms with
Here's an in-progress PR: https://github.com/racket/racket/pull/3518
With this, your simple test takes about 150ms with `racket/place` and
50ms with `racket/place/dynamic`. For comparison, just having the
submodule depend on `racket/base` gives a time of about 42 ms, and
just `racket/kernel` is
On Tue, Nov 24, 2020 at 12:09 PM Nathaniel W Griswold
wrote:
> 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.
>
>
Ah, sorry: DrRacket was merely saying that the
th-place is used if places are not enabled when Racket is built (this is
the default on some platforms).
I'm making progress on shrinking this, hopefully I'll have a patch done
soon.
One thing to note is that '#%place can be required directly and will have
almost no start-up cost.
Sam
Sam
On
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
>
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
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
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
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
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 wrote:
>
> DrRacket thinks that there are no references
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
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
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
Awesome, thanks!
Nate
On Tue, Nov 24, 2020 at 8:44 AM Sam Tobin-Hochstadt
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
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 wrote:
>
> Oops,
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
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.
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
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
19 matches
Mail list logo