What influences a program's performance? Some reasons are quite obvious, like the algorithm implemented and the number of execution cycles, but what about the order in which libraries were linked? Or the shell environment size? Or even the sequence and which compiler optimizations were applied? In fact, modern computer systems include such a multitude of features and options, whose interaction with each other can affect the workload's performance, that it is surprisingly hard to write code that fully benefits from the potential of the CPU. In this talk, we will discuss how small changes in the code and in the execution environment can impact the execution time and how you can use Linux performance assessment tools, like perf and valgrind, to detect and mitigate such pitfalls.
Gabriel Krisman Bertazi is a Software Engineer and Kernel developer with Collabora's kernel team, specializing in the Graphics stack and profiling technologies. Previously a member of the IBM Linux Technology Center Storage team, he also conducted scientific research on adaptive compilation... Read More →