2.21. Improving String Comparison Performance
Problem
Your application consists of many strings that are compared frequently. You have been tasked with improving performance and making more efficient use of resources.
Solution
Use
the intern pool to improve resource usage and, in turn, improve
performance. The Intern and
IsInterned instance methods of the
string class allow you to use the intern pool. Use
the following static methods to make use of the string intern
pool:
using System;
using System.Text;
public class InternedStrCls
{
public static void CreateInternedStr(char[] characters)
{
string NonInternedStr = new string(characters);
String.Intern(NonInternedStr);
}
public static void CreateInternedStr(StringBuilder strBldr)
{
String.Intern(strBldr.ToString( ));
}
public static void CreateInternedStr(string str)
{
String.Intern(str);
}
public static void CreateInternedStr(string[] strArray)
{
foreach(string s in strArray)
{
String.Intern(s);
}
}
}Discussion
The CLR automatically stores all string literals declared in an
application in an area of memory called the intern
pool. The intern pool contains a unique instance of each
string literal found in your code, which allows for more efficient
use of resources by not storing multiple copies of strings that
contain the same string literal. Another benefit is speed. When two
strings are compared using either
the == operator or the
Equals instance method of the
string class, a test is done to determine whether each string ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access