ZuriHac 2015 - Better Faster Binary Serialization

preview_player
Показать описание
Google Tech Talk
May 29, 2015
("show more" for more information)
Presented by 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:
Рекомендации по теме