[racket] Thread creation slow?

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Fri Aug 10 15:14:08 EDT 2012

That gets us to within a factor of 2 or 3 of the go version, I guess?

Robby

On Fri, Aug 10, 2012 at 2:05 PM, Matthew Flatt <mflatt at cs.utah.edu> wrote:
> I've pushed some improvements in v5.3.0.18.
>
> On my machine (MacBook Air, 32-bit mode):
>
>  v5.3:       27.274u 5.868s 0:35.14 94.2%   0+0k 6+2io 622pf+0w
>  v5.3.0.18:   5.851u 2.494s 0:09.12 91.4%   0+0k 2+0io 691pf+0w
>
> I believe that most of the savings are in corrections to avoid O(N)
> setup for N threads for each minor GC.
>
>
> Racket threads can be made lighter by adjusting the
> `current-thread-initial-stack-size' parameter. If I change the program
> to use
>
>   (parameterize ([current-thread-initial-stack-size 100])
>     (setup-whispers leftmost 0 100000))
>
> then I get
>
>               3.854u 1.175s 0:05.32 94.3%   0+0k 1+1io 689pf+0w
>
> The trade-off for a smaller initial stack size is that deeper recursion
> is more expensive.
>
>
> Here are results in 64-bit mode on my machine:
>
>  v5.3:         37.339u 24.869s 1:29.12 69.7%   0+0k 1+0io 49597pf+0w
>  v5.3.0.18:     8.948u 10.030s 0:36.29 52.2%   0+0k 2+0io 43919pf+0w
>  v5.3.0.18/100: 6.334u  3.317s 0:10.83 89.0%   0+0k 0+0io 0pf+0w
>
> For the first two, there's a big difference between CPU+user time and
> real time. Those configurations apparently use enough memory to
> aggravate my machine's memory system.
>
> ____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users

Posted on the users mailing list.