The Art of Profiling and Benchmarking: Making Software Faster on AArch64
As the SPO600 course end nears, I have learned a lot about profiling and benchmarking, important skills for making software faster. This blog post will talk about these topics and what I learned in the course. What is Profiling and Benchmarking Profiling is looking at a program to see which parts use the most resources like CPU time and memory. Profiling helps to find slow parts that need fixing. Benchmarking is running tests to measure how fast a program is. This helps compare different versions of the software or different ways of doing things. Tools for Profiling and Benchmarking In the course, we use some tools to profile and benchmark our code. These include: perf: A powerful tool for profiling on Linux. It gives details about CPU use, cache hits, and more. gprof: A GNU tool that shows time spent in each function. Valgrind: Mostly for finding memory leaks, but also has a profiler called callgrind for looking at function calls. Steps i...