While analyzing the Entity Framework source code, I pinpointed a performance issue associated with the utilization of constant arrays as arguments. This problem was identified in the following code snippet:
foreach (var part in Template.Split(new[] { ' ', '|' },
StringSplitOptions.RemoveEmptyEntries))
The problem arises from the creation of a new array each time this line is called. To address this, you can relocate the array to a static read-only field, as illustrated below:
private static readonly char[] _separator = new[] { ' ', '|' };
foreach (var part in Template.Split(_separator,
StringSplitOptions.RemoveEmptyEntries))
When I setup the CA1861 code analysis in my .editorConfig it looks like this:
dotnet_diagnostic.CA1861.severity = warning
Summary
While reviewing the Entity Framework codebase I utilized for this article, I discovered 168 occurrences where the code needs to be fixed so performance can be increased.
For further guidance and insights, I highly recommend obtaining a copy of my book, “Rock Your Code: Coding Standards for Microsoft .NET” available on Amazon.com. Additionally, to explore more performance tips for .NET, I encourage you to acquire the 3rd edition of “Rock Your Code: Code & App Performance for Microsoft .NET” also available on Amazon.com.
To analyze your code using the same settings I used in these articles, I encourage you to incorporate my EditorConfig file. It can be found at the following link: https://bit.ly/dotNetDaveEditorConfig. I update this file quarterly, so remember to keep yours up to date as well. I hope you will check out my OSS project Spargine by using this link: https://bit.ly/Spargine.
Please feel free to leave a comment below. I would appreciate hearing your thoughts and feedback.
Pick up any books by David McCarter by going to Amazon.com: http://bit.ly/RockYourCodeBooks
Make a one-time donation
Make a monthly donation
Make a yearly donation
Choose an amount
Or enter a custom amount
Your contribution is appreciated.
Your contribution is appreciated.
Your contribution is appreciated.
DonateDonate monthlyDonate yearlyIf you liked this article, please buy David a cup of Coffee by going here: https://www.buymeacoffee.com/dotnetdave
© The information in this article is copywritten and cannot be preproduced in any way without express permission from David McCarter.