The blaze-builder library provides an abstraction of buffered output of byte streams and several convenience functions to exploit it. For example, it allows to efficiently serialize Haskell values to lazy bytestrings with a large average chunk size. The large average chunk size allows to make good use of cache prefetching in later processing steps (e.g. compression) and reduces the sytem call overhead when writing the resulting lazy bytestring to a file or sending it over the network. Note that blaze-builder was inspired by the Data.Binary.Builder module provided by the binary package. It was originally developed with the specific needs of the blaze-html package in mind. Since then it has been restructured to serve as a drop-in replacement for Data.Binary.Builder, which it *improves upon both in speed as well as expressivity.* See the following blog-post for more details: http://lambda-view.blogspot.com/2010/11/blaze-builder-library-faster.html best regards, Simon Meier
On Sun, Nov 7, 2010 at 6:51 PM, Simon Meier <simon.meier@inf.ethz.ch> wrote:
The blaze-builder library provides an abstraction of buffered output of byte streams and several convenience functions to exploit it. For example, it allows to efficiently serialize Haskell values to lazy bytestrings with a large average chunk size. The large average chunk size allows to make good use of cache prefetching in later processing steps (e.g. compression) and reduces the sytem call overhead when writing the resulting lazy bytestring to a file or sending it over the network. Note that blaze-builder was inspired by the Data.Binary.Builder module provided by the binary package. It was originally developed with the specific needs of the blaze-html package in mind. Since then it has been restructured to serve as a drop-in replacement for Data.Binary.Builder, which it improves upon both in speed as well as expressivity. See the following blog-post for more details: http://lambda-view.blogspot.com/2010/11/blaze-builder-library-faster.html best regards, Simon Meier
Can the same technique be ported over to the binary package, or is it somehow interface incompatible? I'd thought I'd heard rumbles a while back about a desire the change the implementation of 'binary', but I don't know what happened to that. Antoine
_______________________________________________ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
participants (2)
-
Antoine Latter -
Simon Meier