Reducing C++ Compilation Times Through Good Design - Andrew Pearcy - ACCU 2024

  Рет қаралды 4,746

ACCU Conference

ACCU Conference

Күн бұрын

ACCU Membership: tinyurl.com/yd...
---
Reducing C++ Compilation Times Through Good Design - Andrew Pearcy - ACCU 2024
---
Continuous integration and continuous deployment (CI/CD) have become industry standard. Being able to quickly change, verify, and deploy code provides a rapid time-to-market and encourages smaller changesets, narrowing the scope for potential bugs. However, this framework relies on the continuous integration pipeline being fast and the developer feedback cycle being short. As a project grows, its compilation time naturally increases. Left unchecked, a project's compilation time can balloon to the point where it impedes the developer feedback loop.
We found ourselves facing excessive build times that were significantly slowing down our software development life cycle. Using open source tools, we profiled our compilation and identified exactly which files, constructs, and design choices had led to these increased build times. Find out how we reduced our compilation time 10-fold through a series of concrete examples.
Slides: accu.org/conf-...
Sponsored By think-cell & Bloomberg Engineering
---
Andrew Pearcy
Andrew Pearcy has spent the last four years developing Bloomberg’s financial risk products. As a full stack developer, he has delivered multiple complex projects in the financial domain to enhance the flexibility, scalability, and efficiency of Bloomberg’s Derivative Hedging Accounting solution. As part of these enhancements, he has modernised, restructured, and refactored projects, striving to constantly improve the developer experience and reduce the time-to-market of this solution.
---
The ACCU Conference is the annual conference of the ACCU membership, but is open to any and all who wish to attend. The tagline for the ACCU is 'Professionalism in Programming', which captures the whole spectrum of programming languages, tools, techniques and processes involved in advancing our craft. While there remains a core of C and C++ - with many members participating in respective ISO standards bodies - the conference, like the organisation, embraces other language ecosystems and you should expect to see sessions on C#, D, F#, Go, Javascript, Haskell, Java, Kotlin, Lisp, Python, Ruby, Rust, Swift and more.The ACCU Conference is a conference by programmers for programmers about programming.
Discounted rates for members.
ACCU Membership: tinyurl.com/yd...
2024 Program: accu.org/conf-...
accu.org
www.accuconfer...
mastodon.socia...
/ accu-conference
bsky.app/profi...
/ accuorg
/ accuconf
---
KZbin Videos Filmed, Edited & Optimised by Digital Medium: events.digital...
#accuconf #programming #cplusplus #cppprogramming #softwaredevelopment

Пікірлер: 15
@llothar68
@llothar68 17 күн бұрын
Restrict your use of header only libraries and templates in API boundaries, use PIMPL and forward declaration and you are fine.
@tomkirbygreen
@tomkirbygreen Ай бұрын
Excellent talk. Pretty much essential material for software at scale.
@tlacmen
@tlacmen Ай бұрын
Will lld or mold improve build time with whole program optimizations enabled?
@paulluckner411
@paulluckner411 Ай бұрын
mold is supposedly faster in any standard usecase. It is optimized for modern hardware by making use of parallelization as much as possible.
@TalJerome
@TalJerome Ай бұрын
Does anyone understand what he meant with "more granular" regarding the protobuf issue? (23:45)
@ContortionistIX
@ContortionistIX Ай бұрын
instead of including the whole schema, only include the schema for specific endpoints
@paulluckner411
@paulluckner411 Ай бұрын
I guess he just means to include the smallest header possible. E.g. instead of only use the ones you need, maybe , .
@bfitzger2
@bfitzger2 Ай бұрын
On the "macros are evil" bit where "#define WIDGET 7" messed up other code, we sometimes used wrapping headers that #undef'd macros we didn't want to leak out, or did it in source code. This originally was in the context of making some code cross-platform where Windows or Apple headers liked to define very common names for their constants, so platform-specific code would use the raw header, but public code in our project used the wrapping headers. I think Unreal does this as well, and I wouldn't be surprised to see this in older Unix cross-platform projects.
@hbobenicio
@hbobenicio Ай бұрын
Very good talk, thank you!
@GeorgeTsiros
@GeorgeTsiros Ай бұрын
Anyone remember Turbo Pascal? Remember how fast it was? Remember the _hardware_ that it ran on? Yeah. We've got a _lot_ of catching up to do. There is zero reason the executable can't be ready some milliseconds after a character has changed in the code. That THE ENTIRE SOURCE is worked on, as if it has never been seen before, every time a build is started is comical.
@depralexcrimson
@depralexcrimson Ай бұрын
thank the software industry for that one... instead of hiring passionate people, they hire vloggers that do anything but coding 90% of their work day.
@maxrinehart4177
@maxrinehart4177 25 күн бұрын
​@@depralexcrimson the tech industry really screwed itself hard.
@allNicksAlreadyTaken
@allNicksAlreadyTaken 18 күн бұрын
There are actually a thousand reasons, you obviously just don't understand them. If you are so smart, go out and fix it.
@27182818284590452354
@27182818284590452354 16 күн бұрын
Turbo Pascal had modules 40 years ago. C++ compilers can't properly implement them still. It's just mind-boggling.
@realhet
@realhet 14 күн бұрын
One valid reason is optimization. I remember TP, also I remember Delphi on win32 up until 2012ish. It was still lightning fast, but generated a little bit slower code than LLVM. Later I got to work with Cpp and got totally sick from those compile times: 50kloc project, and 45 seconds to launch a debugger on unoptimized code. I don't even do big projects, just my one man project... With optimization it was like 2-3 minutes. It was fast compared to this presentation, but coming from Borland Pascal, Delphi it's slow as hell. When the program starts running, I already forgot why I started it earlier
C++ Exceptions Reduce Firmware Code Size - Khalil Estell - ACCU 2024
1:22:53
Help Me Celebrate! 😍🙏
00:35
Alan Chikin Chow
Рет қаралды 45 МЛН
How Strong is Tin Foil? 💪
00:26
Preston
Рет қаралды 130 МЛН
The Most Valuable File Format You've Never Heard Of
15:33
Acerola
Рет қаралды 430 М.
Microservices are Technical Debt
31:59
NeetCodeIO
Рет қаралды 351 М.
The Data Abstraction Talk - Kevlin Henney - ACCU 2024
1:34:04
ACCU Conference
Рет қаралды 3,8 М.
Projects Every Programmer Should Try
16:58
ThePrimeTime
Рет қаралды 464 М.
Nix explained from the ground up
23:39
Surma
Рет қаралды 34 М.
Being Competent With Coding Is More Fun
11:13
TheVimeagen
Рет қаралды 82 М.