Skip to content
0:00 / 0:00

#serialization#cborg#deepembedding

ZuriHac 2015 - Better Faster Binary Serialization

Google TechTalks

349K subscribers • 62 videos on Hallway

YouTube
  • Recommended by 2 people: 2 in engineering communities.
  • Presented by Duncan Coutts
  • Linked in the descriptionmeiersi/HaskellerZ

Advanced. Deep dive for people who know the field.

2.5K views11 years ago2 recommendations

Programming languagesSystems programmingHaskellPerformance and optimization

Duncan Coutts presents a case study on low-level optimization in Haskell, using deep embeddings and interpreters to speed up binary serialization.

Google Tech Talk May 29, 2015 ("show more" for more information) Presented by Duncan Coutts wiki.haskell.org/ZuriHac2015#Duncan_Coutts ABSTRACT This talk is a case study in low level optimization in Haskell. We have existing libraries for binary serialization but the mainstream ones use bad formats, and could always be faster. We will look at new work to improve on the existing libraries, to use a new better format, and to dramatically improve performance. We will go into the details of a number of standard and new techniques for getting a good combination of performance with features and flexibility. - High+low level approach to eliminating unnecessary allocations in deserialization - Surprising use of deep embeddings and interpreters - Moving work from compiled code to an interpreter - Rewrite rules to improve interpreted code - Deep embedding of composition to give statically allocated descriptions of branching programs - Types to safely use unsafe low level data structures - Looking at STG code to see allocations and other problems - Fast path / slow path tricks - Explicit control stacks - ABIs / calling conventions for unknown functions There'll be plenty of code, types and benchmarks. Slides for this talk are available here: github.com/meiersi/HaskellerZ/blob/master/meetups/20150529-Z…

Why it's here

2 people recommend this

What people say. Recommended for its insights into low-level Haskell optimization and the surprising use of deep embeddings for performance.

u/adamgundryin r/haskell • Recommends

On “Parsing combinators representation.”

It's not *exactly* a parser combinator library, but Duncan's work on binary deserialisation (see link to this video and https://hackage.haskell.org/package/cborg) uses a deep embedding (somewhat surprisingly) for performance reasons.

u/dcouttsin r/haskell • Recommends

On “Better, faster binary serialization :: transferable tricks and tips for other libraries”

link to this video This will appear alongside all the other ZuriHac videos shortly on the Google Open Source blog.

u/jlimpergin r/haskell • Mentions

On “Stack traces in GHCi, coming in GHC 8.0.1 · Simon Marlow”

Code; Talk by Duncan at ZuriHac 2015; Slides. Not sure if that's the most up to date information, but a quick search didn't reveal anything else.