-
Notifications
You must be signed in to change notification settings - Fork 874
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
Improve startup performance #1412
Comments
Pretty sure the memoization improvements from #1453 may help here, at least a little bit. |
Leaving a link to this here as something we can explore for performance benchmarking: https://pytest-benchmark.readthedocs.io/en/latest/ |
Two things to profile this:
Some quick observations:
We should at least:
|
Some work has been done in: |
Fwiw we should investigate "freezing" or "frozen" modules, since this may improve startup time if we would do it for ALL Pwndbg code and its dependencies code. We could do it for Pwndbg releases? |
Startup performance is not great, particularly when debugging a kernel with QEMU.
Some preliminary profiling with cProfile shows that syntax highlighting is a major issue, with
set syntax-highlight off
leading to a 43% improvement.gdb-pt-dump
also takes a significant amount of time, but there's work for a Rust rewrite underway, and in the meantime I plan to add an option to completely disable getting memory maps in QEMU to improve performance.We should investigate these, and other issues, and start tracking startup time as part of every PR.
Edit: Seems like this call to
print_help
accounts for 8% of startup time:pwndbg/pwndbg/commands/__init__.py
Line 360 in 41c4070
The text was updated successfully, but these errors were encountered: