LGTM, thanks On Wed, Dec 12, 2012 at 11:28 AM, Iustin Pop <ius...@google.com> wrote:
> as designed to optimise the receive interface, but has > an unfortunate side-effect: when sending non-trivial messages, it > means that both the entire String and the ByteString versions must be > in memory at the same time, leading to much increased memory usage. > > By changing the "hPut" from strict to lazy ByteStrings, it means that > both the String and the ByteString values can be evaluated lazily, > with significant effects: for a test query answer, instead of having > a peak from ~600MB to 1.4G during the entire Luxi send operation, > memory consumption actually decreased during the send operation, as > the ByteString chunks are released individually and even the backing > storage of the items that create the JSON string serialisation is > released lazily as well. So instead of slow growth 10→550MB then quick > peak to 1.4GB during Luxi send, we now have an even slower growth to > ~580MB and then decrease of memory as the Luxi send progresses. > > The only downside is of a small increase in CPU time of a few percents > for the above case; for our use cases, I think this is much desirable. >