CppCon 2014: Andrei Alexandrescu "Optimization Tips - Mo' Hustle Mo' Problems"
Vložit
- čas přidán 4. 06. 2024
- www.cppcon.org
-
Presentation Slides, PDFs, Source Code and other presenter materials are available at: github.com/CppCon/CppCon2014
--
Reasonably-written C++ code will be naturally fast. This is to C++'s excellent low-penalty abstractions and a memory model close to the machine.
However, a large category of applications have no boundaries on desired speed, meaning there's no point of diminishing returns in making code faster. Better speed means less power consumed for the same work, more workload with the same data center expense, better features for the end user, more features for machine learning, better analytics, and more.
Optimizing has always been an art, and in particular optimizing C++ on contemporary hardware has become a task of formidable complexity. This is because modern hardware has a few peculiarities about it that are not sufficiently understood and explored. This talk discusses a few such effects, and guides the attendee on how to navigate design and implementation options in search for better performance.
--
Andrei Alexandrescu is a researcher, software engineer, and author. He wrote three best-selling books on programming (Modern C++ Design, C++ Coding Standards, and The D Programming Language) and numerous articles and papers on wide-ranging topics from programming to language design to Machine Learning to Natural Language Processing. Andrei holds a PhD in Computer Science from the University of Washington and a BSc in Electrical Engineering from University "Politehnica" Bucharest. He works as a Research Scientist for Facebook.
Website: erdani.com
Twitter handle: @incomputable
--
Videos Filmed & Edited by Bash Films: www.BashFilms.com
*-----*
Register Now For CppCon 2022: cppcon.org/registration/
*-----*
you should always code your c++ 11 and c++ 14 keeping in mind how many electrons are moved down the copper wires you know...
My favorite C++ guy
CPP MAN
@@notinlist He's actually D MAN
This guy is fantastic. Seriously one of my favorite people to watch.
A 5% difference in performance translates to 5% more battery life. That's huge.
5% difference in core of language or popular libraries is like you know eliminating few data centers. Billions of dollars worth.
To anyone who is against using goto, do recall what the underlying assembly looks like.
Well, on current Clang and GCC (in 2021) using `goto` and using two `delete`s produce same code.
ZII is really powerful
i don't understand, why we need goto? Why not just dublicate "delete p_;" instead of goto?
As he says, it makes the (compiled) code smaller, which often means faster since more stuff fits in the instruction cache. Though in this case I guess he could just have it be the last thing in the function since both branches go there anyway. (Edit: nah, I thought of it wrong -- it can't just go in the end.)
If one is prematurely optimizing one is not allowing the compiler to know better.