you cant provide > 1 word alignment guarantees if the bytearray isnt pinned, ... at least with the current RTS setup. (though that would be pretty handy if possible)
On Wed, Nov 26, 2014 at 8:55 PM, Erik de Castro Lopo <mle...@mega-nerd.com> wrote: > Brandon Simmons wrote: > > > In my tests, using calloc from: > > > > > https://hackage.haskell.org/package/missing-foreign-0.1.1/docs/Foreign-Marshal-MissingAlloc.html > > > > was about twice as fast as allocating and zeroing the same amount of > > memory with `newByteArray` + any of `copy/set/fillMutableByteArray` > > (all three were nearly identical). Is there a way I can reasonably > > define my own `newByteArray` that uses calloc? > > > > FWIW here are a couple of the benchmarks I'm working with in criterion: > > > > arrTestSet :: Int -> IO () > > arrTestSet len = do > > let eBytes = (P.sizeOf (undefined::Int))*len > > a <- P.newAlignedPinnedByteArray > > Why pinned memory? > > Erik > -- > ---------------------------------------------------------------------- > Erik de Castro Lopo > http://www.mega-nerd.com/ > _______________________________________________ > Glasgow-haskell-users mailing list > Glasgow-haskell-users@haskell.org > http://www.haskell.org/mailman/listinfo/glasgow-haskell-users >
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users