CppCon 2018 has ended
Back To Schedule
Thursday, September 27 • 14:00 - 15:00
Design for Performance: Practical Experience

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

This presentation is a "lessons learned" summary of some 20 years of experience designing, developing, and maintaining a large-scale commercial software system for the users who are primarily interested in performance. Competitive benchmarks are the dominant factor in our users' decisions whose tool to buy.

A high-quality implementation, a skillful optimization, can win the day in such environment. But only the day. The design determines the long-term survival. Parts of the system have grown ten-fold in size and complexity, but still fundamentally use the original architecture and show no sign of strain. Others had to be radically redesigned or even rewritten from scratch. The designs of the former type tend to share certain characteristic properties, which we came to recognize. These are design patterns of high-performance software, at least in our experience. The design of the latter type, unfortunately, exhibit an infinite variety of poor decisions, although some mistakes (anti-patterns?) are repeated over and over.

In this presentation, I will show the most important patterns and practices of design for performance that I have learned. Some will be obvious, especially after you hear them. Others may be controversial (for example, sometimes you should optimize prematurely if you want to be able to optimize at all). I may even present some of the anti-patterns, but only for laughs and to make the listeners feel better about their own design mistakes.

avatar for Fedor Pikus

Fedor Pikus

Technical Fellow, Siemens
Fedor G Pikus is a Technical Fellow and head of the Advanced Projects Team in Siemens Digital Industries Software. His responsibilities include planning the long-term technical direction of Calibre products, directing and training the engineers who work on these products, design... Read More →

Thursday September 27, 2018 14:00 - 15:00 PDT
Breckenridge Hall (1st Floor)
  • Optimization and Undefined Behavior