Конфигурирование ELMAH: Нераспознанная ошибка раздела конфигурации

Функции, вызванные с помощью виртуальной отправки, не встраиваются

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

стоимость Виртуального вызова зависит от платформы

Что касается вызова служебный штраф по сравнению с нормальным вызовом функции, ответ зависит от Вашей целевой платформы. Если Ваш предназначаются для ПК с x86/x64 ЦП, штраф за то, что вызвали виртуальную функцию является очень маленьким, поскольку современный x86/x64 ЦП может выполнить предсказание ветвлений на непрямых вызовах. Однако при предназначении для PowerPC или некоторой другой платформы RISC штраф виртуального вызова может быть довольно значительным, потому что непрямые вызовы никогда не предсказываются на некоторых платформах (Cf. ПК/Xbox 360 Лучших практик Кросс-платформенной разработки ).

9
задан dotjoe 30 March 2012 в 16:22
поделиться

1 ответ

XML-код чувствителен к регистру:

<section name="errorLog" type="Elmah.ErrorLogSectionHandler, Elmah"/>

vs

<elmah>
  <errorlog type="Elmah.XmlFilerErrorLog, Elmah" logPath="~/App_Data" />
</elmah>

Переименуйте элемент errorlog в errorLog, и он будет (должен) работать.

7
ответ дан 4 December 2019 в 23:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: