In a previous blog post, we discussed the importance of frame pointers and how they impact your ability to do performance tuning and other diagnostics. In addition to the theory and impacts of frame pointers, we covered the important news that Fedora -- the basis of Red Hat Enterprise Linux -- decided to enable frame pointers by default for most operating system packages starting with Fedora 38, 64-bit.
The industry keeps shifting in this direction -- accepting the slight additional cost of frame pointers for the massive improvements in serviceability and performance analysis -- as Ubuntu has now joined Fedora's lead. Ubuntu 24.04 will also be enabling frame pointers by default for most libraries on 64-bit: https://ubuntu.com/blog/ubuntu-performance-engineering-with-frame-pointers-by-default
Frame pointers allow more complete CPU profiling and off-CPU profiling. The performance wins that these can provide far outweigh the comparatively tiny loss in performance.
It is good to see that their performance tests show results consistent with other tests that we've seen:
Our analysis suggests that the penalty on 64-bit architectures is between 1-2% in most cases
The rest of the article is worth reading to understand the benefits of frame pointers by default.