Skip to content
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

[Performance] write all traps into memory #384

Open
mistymntncop opened this issue Dec 30, 2024 · 2 comments
Open

[Performance] write all traps into memory #384

mistymntncop opened this issue Dec 30, 2024 · 2 comments
Labels
Debugger Pertains to the debugger. Performance Pertains to performance issues.

Comments

@mistymntncop
Copy link

mistymntncop commented Dec 30, 2024

When debugging a release build of Firefox I have noticed a significant slowdown of launching Firefox when adding a small number of breakpoints. Without any breakpoints enabled Firefox launches within ~3 seconds. However with only around 5 breakpoints enabled it now takes ~9 seconds to launch, quite noticeable. This seems related to "write all traps into memory" - in particular the writing part. Firefox is a multi-process application ("Debug Subprocesses" was enabled) so there are many debug events being created during Firefox startup from dlls being loaded and threads being created, etc. I'm not sure what can be done to improve performance without changing the current trap design though ?

@ryanfleury
Copy link
Collaborator

This may not be because of the traps specifically, but may instead be due to the serial-dependence of DLL loading in the presence of breakpoints. When any breakpoints are set, DLL & PDB/RDI loading is required to be serially-dependent, because each new module can potentially imply new traps that need to be written, given a high-level breakpoint location.

This 9 seconds may be largely due to serially dependent debug info conversion. Can you confirm this by trying several runs with breakpoints after debug info conversion has already been done, and seeing if the timing is any different?

@ryanfleury ryanfleury added Debugger Pertains to the debugger. Performance Pertains to performance issues. labels Jan 7, 2025
@mistymntncop
Copy link
Author

Yes, I have confirmed this problem still exists even after all the PDB's have been converted to RDI's.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Debugger Pertains to the debugger. Performance Pertains to performance issues.
Projects
None yet
Development

No branches or pull requests

2 participants