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

Speed up release build #963

Open
benmwebb opened this issue Sep 14, 2016 · 1 comment
Open

Speed up release build #963

benmwebb opened this issue Sep 14, 2016 · 1 comment

Comments

@benmwebb
Copy link
Member

Release builds still include a lot of USAGE checks in performance-critical parts of the code that make the builds substantially slower than fast builds (with no checks at all). Many of these should be removed entirely, replaced with one-time (rather than every time through a loop) checks, demoted to INTERNAL checks (only in debug builds), or perhaps only used in the Python interface. The idea is that a release build should be only 1-3% slower than a fast build.

@benmwebb
Copy link
Member Author

benmwebb commented Feb 1, 2024

0ae384d provides a templated method to get elements from an an IMP::Array (e.g. accessing the two indexes in a ParticleIndexPair). This moves the bounds check from runtime to compile time. This check is called a lot in a typical run as it is triggered at each restraint evaluation.

benmwebb added a commit that referenced this issue Feb 1, 2024
Change the check for uninitialized VectorD from
a usage check to an internal check. This has a
large effect on performance since it is called
a lot by any restraint that works on coordinates.
Relates #963.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant