-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update build advice for benchmarking and profiling #22
Conversation
Yes, please! Although perhaps the default is already "On" for rust code (rust-lang/rust#122646 (comment)). I didn't check yet what the defaults for framepointers in user code are on the targets we support. |
Regarding user code, it seems they are not yet forced by default on all platforms. I checked this by finding related patches (rust-lang/rust#61675, rust-lang/rust#86652, rust-lang/rust#107689, rust-lang/rust#114323, rust-lang/rust#115521, rust-lang/rust#124733) and seeing where the defaults are specified:
I also confirmed this in our own builds for Linux on amd64. Most functions have frame pointers, but not all:
|
These patches update the Profiling and Building Servo chapters with new advice around building Servo for benchmarking and profiling purposes. In particular:
production-stripped
(Add production-stripped cargo profile servo#32651) andprofiling
(Add a profiling build profile in Cargo servo#33432) profilesprofiling
builds for profiling, rather than release builds with debug info and thin local LTOproduction
builds are more optimised thanrelease
builds, and they still have symbolsWe also fix a typo,
--with-frame-pointers
→--with-frame-pointer
. That said, we should really enable stack frame pointers by default in all builds, because it’s now considered best practice.(@atbrakhi, @jschwe)