Сообщения об исключениях и производительность C#: создается ли строка сообщения об исключении, даже если исключение не сC#

Место общения программистов C#
Anonymous
Сообщения об исключениях и производительность C#: создается ли строка сообщения об исключении, даже если исключение не с

Сообщение Anonymous »

Это может пахнуть микрооптимизацией, но в данном случае я запускаю цикл десятки миллионов раз, и производительность имеет решающее значение (и является серьезной проблемой на данный момент).
В этом сценарии во время каждой итерации цикла я выполняю следующую проверку:

Код: Выделить всё

   if (this.isSafeMode && bar.Period != this.SourcePeriod)
{
throw new InvalidOperationException(
"Attempted to process a bar that does not match the market context's source period. " +
$"Processed bar period: [{bar.Period}] " +
$"Market context source period: [{this.SourcePeriod}]");
}
Вопрос 1. Создается ли эта строка сообщения об исключении в каждом цикле, даже если исключение не генерируется, создавая ненужные накладные расходы? (В других случаях мне приходится создавать довольно дорогие строки исключений — это простой пример)
Вопрос 2: Если вопрос №1 верен, можно ли создать собственный тип исключения, который принимает аргументы и строит строку сообщения из этих аргументов, чтобы избежать ненужных накладных расходов? (Или, какова альтернатива?)
К вашему сведению: это исключение не нужно будет переводить на разные языки (если бы это было так, собственное исключение могло бы иметь больше смысла).< /p>
Спасибо, что уделили время!

Подробнее здесь: https://stackoverflow.com/questions/787 ... ing-create

Вернуться в «C#»