[Haskell-cafe] Questions about slow GC with STArray

2009-04-06 Thread FFT
I've been following with interest the recent discussions on reddit about the extremely slow hash tables in Haskell compared to F# and OCaml, and as I understood it, this performance problem is caused by GC not liking mutable arrays http://hackage.haskell.org/trac/ghc/ticket/650 It appears from

Re: [Haskell-cafe] Questions about slow GC with STArray

2009-04-06 Thread Bulat Ziganshin
Hello FFT, Monday, April 6, 2009, 11:07:33 AM, you wrote: this problem addressed there? Why is this supposed to be specific to boxed arrays only: wouldn't GC have to scan the whole mutable array whether it's boxed or unboxed? you need to scan only boxes: if array just contains plain

Re: [Haskell-cafe] Questions about slow GC with STArray

2009-04-06 Thread FFT
On Mon, Apr 6, 2009 at 1:10 AM, Bulat Ziganshin bulat.zigans...@gmail.com wrote: you need to scan only boxes: if array just contains plain cpu-level numbers, there is nothing to scan Are those the only legal contents of STUArray? ___ Haskell-Cafe

Re: [Haskell-cafe] Questions about slow GC with STArray

2009-04-06 Thread Dan Doel
On Monday 06 April 2009 4:10:43 am Bulat Ziganshin wrote: one way to solve this problem is to make one `modified` bit per each 256 elements rather than entire array so GC will have to scan only modified chunks For reference, I constructed a benchmark that takes advantage of GHC's tagging of

Re[2]: [Haskell-cafe] Questions about slow GC with STArray

2009-04-06 Thread Bulat Ziganshin
Hello Dan, Monday, April 6, 2009, 12:35:14 PM, you wrote: the size of the sub-array. The test then fills a 10 million element array. However, something about the benchmark makes it perform poorly for both small chunks and large chunks. -sstderr reports that lots of copying occurs for small

Re[2]: [Haskell-cafe] Questions about slow GC with STArray

2009-04-06 Thread Bulat Ziganshin
Hello FFT, Monday, April 6, 2009, 12:32:53 PM, you wrote: you need to scan only boxes: if array just contains plain cpu-level numbers, there is nothing to scan Are those the only legal contents of STUArray? numbers, chars, vanilla pointers. UArray just mimics C arrays, after all -- Best

Re[4]: [Haskell-cafe] Questions about slow GC with STArray

2009-04-06 Thread Bulat Ziganshin
Hello FFT, Monday, April 6, 2009, 12:56:51 PM, you wrote: Are those the only legal contents of STUArray? numbers, chars, vanilla pointers. UArray just mimics C arrays, after all I haven't gotten to learning about them in detail yet, but my hope was that STUArray was like vectorT in C++,

Re: Re[2]: [Haskell-cafe] Questions about slow GC with STArray

2009-04-06 Thread FFT
On Mon, Apr 6, 2009 at 1:49 AM, Bulat Ziganshin bulat.zigans...@gmail.com wrote: Are those the only legal contents of STUArray? numbers, chars, vanilla pointers. UArray just mimics C arrays, after all I haven't gotten to learning about them in detail yet, but my hope was that STUArray was