Я не мог точно сказать, поможет ли это вашей работе или нет. Это будет зависеть от того, сколько строк вы используете, и как часто вы создаете экземпляры этих строк. Проводка обычно выполняется автоматически, поэтому явная проверка, если строка интернирована, может фактически увеличить ваши накладные расходы и снизить вашу производительность. Когда дело доходит до использования памяти, интернированные строки могут определенно использовать меньше памяти.
Если вы хотите использовать интернирование строк, есть несколько способов его достижения. Прежде всего, я бы привязал свои имена элементов в статическом классе, полном публичных строковых констант. Любой строковый литерал, найденный в исходном коде программы, определенно и автоматически интернирован. Такие строки загружаются в внутренний пул при загрузке приложения. Если ваши строки не могут быть определены как константы для подготовки к подготовке во время компиляции, тогда я бы просто вызвал String.Intern (...) вместо того, чтобы делать полное тернарное выражение String.IsInterned (...)? ...: String.Intern (...). Метод Intern автоматически проверяет, является ли строка интернированной, верните интернированную версию, если она есть, и в противном случае добавит строку в внутренний пул и вернет ее, если это не так. Не нужно вручную проверять IsInterned самостоятельно.
Опять же, я не могу сказать, будет ли ручной интернинг строк улучшать производительность. Если вы используете константы, они будут автоматически интернированы для вас самым оптимальным способом, и это лучший подход к повышению производительности и использования памяти регулярно повторяющихся строк. Я бы честно рекомендовал вам держаться подальше от ручного интернирования, а также позволить компилятору и оптимизации времени выполнения для вас.
Мое общее предложение к этому было бы - попробуйте сам и измерить, если это делает никакой разницы ... (хотя я знаю, что это не совсем то, что вы после ...) – Rashack
@Rashack я намерен чтобы проверить его, но я также думаю, что это правильный вопрос, и я не видел непосредственно связанного вопроса, касающегося разбора текста, такого как HTML или XML-контент. :) –