logo
首页技术栈工具库讨论
bitvec

bitvec

A newtype over Bool with a better Vector instance: 8x less memory, up to 1000x faster. The vector package represents unboxed arrays of Bool spending 1 byte (8 bits) per boolean. This library provides a newtype wrapper Bit and a custom instance of unboxed Vector, which packs bits densely, achieving 8x less memory footprint. The performance stays mostly the same; the most significant degradation happens for random writes (up to 10% slower). On the other hand, for certain bulk bit operations Vector Bit is up to 1000x faster than Vector Bool. Data.Bit is faster, but writes and flips are thread-unsafe. This is because naive updates are not atomic: read the whole word from memory, then modify a bit, then write the whole word back. Data.Bit.ThreadSafe is slower (up to 20%), but writes and flips are thread-safe. bv and bv-little do not offer mutable vectors. array is memory-efficient for Bool, but lacks a handy Vector interface and is not thread-safe.
由 
bruceshi2021-01-13 收录
--
推荐
不推荐
更多信息
GitHub iconBodigrim/bitvec46
HACKAGE
carbal install bitvec
查看
标签
根据用户添加的标签生成
暂无标签