Ixsensedtk3nhq3x3g1z
Meet up

Type Punning and Counting Nanoseconds

Monday, 9th September at CodeNode, London

This meetup was organised by C++ London in September 2019

We have Timur Doumler back with us to talk to us about Type Punning, Come join us!

Agenda

Agenda:

18:30 Phil Nash - "Intro and News"

18:40: David Gross - "Counting nanoseconds: Micro-benchmarking C++ code"

19:30: Break for pizza & drinks - thanks to Optiver!

19:50: Timur Doumler - "Type punning in modern C++

Counting Nanoseconds: Micro-benchmarking C++ code

"If you don't benchmark your code, you don't care about its performance." Chandler Carruth Benchmarking our code matters when we care about its speed. While it seems simple to use Google Benchmark and run a benchmark, there are many pitfalls and getting accurate results from a benchmark isn't an easy task. What to measure first? How comparable are the first and the thousandth iterations of our benchmark? What if we have to measure the speed of only one line of code? What are the limits of our measurements?

David's talk will be published on 16th of November 2019.

David Gross

David is an enthusiastic C++ developer with an emphasis on performance, He is measuring nanoseconds at work (and at home). At Optiver, he’s writing automated trading systems for options and teaches Modern C++ to his colleagues

Type Punning in Modern C++

Type punning is often used in C++ for fast floating-point math, deserialising C++ objects from a sequence of bytes, and other purposes. Popular techniques involve unions, reinterpret_cast, and memcpy. C++20 provides new useful tools, such as bit_cast. And there are proposals to provide even better control over C++ object creation in the future. This talk is a comprehensive overview of all of these techniques. We will discuss when and how they can be used safely without causing undefined behaviour, what C++ does and does not allow you to do (and why), existing holes in the C++ language, and how to fix them. In the process, we will cover important C++ concepts such as object lifetime, value representations, and aliasing rules

Timur Doumler

Timur Doumler is a C++ developer specialising in audio and music technology, member of the ISO C++ committee, and program chair of the Audio Developer Conference (ADC). He is passionate about writing clean code, providing good tools, evolving the C++ language, and building inclusive communities.

Thanks to our sponsors

Attending Members

Overview

We have Timur Doumler back with us to talk to us about Type Punning, Come join us!

Agenda

Agenda:

18:30 Phil Nash - "Intro and News"

18:40: David Gross - "Counting nanoseconds: Micro-benchmarking C++ code"

19:30: Break for pizza & drinks - thanks to Optiver!

19:50: Timur Doumler - "Type punning in modern C++

Counting Nanoseconds: Micro-benchmarking C++ code

"If you don't benchmark your code, you don't care about its performance." Chandler Carruth Benchmarking our code matters when we care about its speed. While it seems simple to use Google Benchmark and run a benchmark, there are many pitfalls and getting accurate results from a benchmark isn't an easy task. What to measure first? How comparable are the first and the thousandth iterations of our benchmark? What if we have to measure the speed of only one line of code? What are the limits of our measurements?

David's talk will be published on 16th of November 2019.

David Gross

David is an enthusiastic C++ developer with an emphasis on performance, He is measuring nanoseconds at work (and at home). At Optiver, he’s writing automated trading systems for options and teaches Modern C++ to his colleagues

Type Punning in Modern C++

Type punning is often used in C++ for fast floating-point math, deserialising C++ objects from a sequence of bytes, and other purposes. Popular techniques involve unions, reinterpret_cast, and memcpy. C++20 provides new useful tools, such as bit_cast. And there are proposals to provide even better control over C++ object creation in the future. This talk is a comprehensive overview of all of these techniques. We will discuss when and how they can be used safely without causing undefined behaviour, what C++ does and does not allow you to do (and why), existing holes in the C++ language, and how to fix them. In the process, we will cover important C++ concepts such as object lifetime, value representations, and aliasing rules

Timur Doumler

Timur Doumler is a C++ developer specialising in audio and music technology, member of the ISO C++ committee, and program chair of the Audio Developer Conference (ADC). He is passionate about writing clean code, providing good tools, evolving the C++ language, and building inclusive communities.

Thanks to our sponsors

Who's coming?

Attending Members