[racket] Thread creation slow?
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