{"push_id":1224330636,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"c53d2f81615c2b94fa8ac7d3886c9529cfea4d89","before":"6280d460416c906f53520c1d044589304f667d25","commits":[{"sha":"c53d2f81615c2b94fa8ac7d3886c9529cfea4d89","author":{"name":"Patrick Thomson","email":"38df6a931a205814ca498263d467ca19b4fbd715@helium.co"},"message":"Remove space leaks in the Airship-Trace header.\n\nThis patch contains three optimizations:\n\nThe three optimizations are as follows:\n1) We stop using RWST, as its Writer component leaks space. We replace\nit with an RST monad, extracted from the Snap framework, that provides\nassured strictness and an inlined >>= implementation. In addition, we\nuse modify' rather than modify to ensure that the change is applied\nstrictly (this yielded a small but significant increase in throughput).\n\n2) We use (:) to add a new item onto the internal list of traces,\nrather than constructing a new list out of the item and using mappend.\nThough this constructs the list of traces in reverse order, we reverse\nsaid list before sending it to the client.\n\n3) We use ByteString values in the internal trace list so as to avoid\nthe overhead of an unnecessary decodeUtf8 (since the header value is\na ByteString anyway).","distinct":true,"url":"https://api.github.com/repos/patrickt/airship/commits/c53d2f81615c2b94fa8ac7d3886c9529cfea4d89"}]}
{"actor":{"display_login":"patrickt"}}