Avoid excessive locals
TypeName |
AvoidExcessiveLocals |
CheckId |
CA1809 |
Category |
Microsoft.Performance |
Breaking Change |
NonBreaking |
Cause
A method contains more than 64 local variables, some of which might be compiler generated.
Rule Description
A common performance optimization is to store a value in a processor register instead of memory, which is referred to as "enregistering" the value. The common language runtime considers up to 64 local variables for enregistration. Variables that are not enregistered are placed on the stack and must be moved to a register before manipulation. To allow the possibility that all local variables get enregistered, limit the number of local variables to 64.
How to Fix Violations
To fix a violation of this rule, refactor the implementation to use no more than 64 local variables.
When to Exclude Warnings
It is safe to exclude a warning from this rule, or disable the rule entirely, if performance is not an issue.