You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
The text was updated successfully, but these errors were encountered:
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.
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.
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 toINTERNAL
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.The text was updated successfully, but these errors were encountered: