Does newByteArray clear?

Bardur Arantsson spam at scientician.net
Thu Aug 27 06:45:57 UTC 2020


On 27/08/2020 02.56, Bertram Felgenhauer via Glasgow-haskell-users wrote:
> David Feuer wrote:
>> I'm looking to play around with an array-based structure with
>> sub-linear worst-case bounds. Array is pretty awkward in that context
>> because creating a new one takes O(n) time to initialize it. Is that
>> all true of newByteArray, or can I get one with arbitrary garbage in it
>> for cheap?
> 
> newByteArray# does not actively clear memory.
> 
> However, for large arrays, I think the memory is likely to be freshly
> allocated from the OS, and the OS will have cleared it for security
> reasons.
> 

Not sure how common it is in practice, but it's worth noting that OS'es
should be able to clear freed memory as a background process, so that
they don't have to do it on demand at the precie point of allocation. Of
course this depends on memory churn, etc. etc., so it's not exactly
guaranteed even if the OS supports it.

Regards,



More information about the Glasgow-haskell-users mailing list