Tim McGilchrist began his career as a mere midshipman, with some experiences in the exotic lands of Erlang, Lisp and OCaml. He developed a liking for the rough sailor life, strong types and a tot of rum. He quickily progressed to more daring exploits in distributed systems and contrarianism which gained him the promotion to lieutenant. After some gruelling service where he was blockaded at Brest using un-mentionable non-FP languages, he was offered a promotion to Master and Commander of Big Data at Ambiata. Once there, he met a number of gizzled Haskell verterans and went to work on special operations in infrastrure, machine learning and big data.
YOW! Lambda Jam 2016 Brisbane
Practical Haskell Performance
Great you’ve written some elegant Haskell application using the latest in burrito and type system hackery. It all type checks and you adversary Senior QuickCheck can’t find any holes in your logic. Winning at life, now to push that into production and pat yourself on the back. Hold on, your beautiful Haskell code is behaving poorly, eating up all the memory and most of the CPU. That shouldn’t be, time to do a little investigation.
This talk will offer a practical look at Haskell performance, motivated by real life Haskell programs from Ambiata. We will look at things like strict and lazy data types, profiling tools and memory usage, and will offer up practical suggestions on making Haskell fast.
In the Haskell community there is a wealth of information around using types and general functional principles, much of the teaching material focuses on this which provides a solid foundation for using functional programming. However there is missing information around how to make Haskell code fast, or at least fast enough that it doesn’t matter.