On 9 Feb 2016, at 11:40, Tom Nielsen <tomn@beautifuldestinations.com> wrote:I unsafeCoerce to Word64 first. This usually helps in making the output compatible with non-Haskell applications and is much faster.TomOn Tue, Feb 9, 2016 at 10:19 AM, Francesco Mazzoli <f@mazzo.li> wrote:Serialization of floating point numbers with
binary
is fantastically slow and incorrect if you’re usingNaN
s, seeI recently spent half a day debugging performance problems because of this, and since backwards compatibility with older formats is required, this problem is probably not going to be solved.
We decided to switch to
cereal
for this reason. With some patches cereal was 30x faster for the data we were serializing (scientific computing, mostlyDouble
s packed in nested records containing vectors).The size of the serialized data is also roughly 3 times smaller – with
binary
aDouble
takes at least 25 bytes of space instead of 8. WithFloat
it’s even worse, 25 bytes instead of 8.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
--Tom Nielsen | Chief Data Science OfficerSoho works | Tea building | 56 Shoreditch High St | London E1 6JJ+44 7961 270 416Beautiful Destinations | The world’s largest travel influencer on Instagram