Пожалуйста, не микро оптимизируйте свой код, пока не узнаете, где именно проблема.
Вы можете реализовать свою собственную функцию и сделать ее встроенной функцией, чтобы уменьшить стоимость вызова функции с помощью MethodImplAttribute.
Если вы используете Int32 значения и ваши входы не случится граничные значения, то вы можете использовать этот
Abs(x) = (x^(x >> 31)) - (x >> 31)
, но я предлагаю вам забыть об этом, профиль приложения, вы увидите реальная проблема в другом месте не в вызове Math.Abs
. Вы всегда должны сделать свой код читабельным, а затем настроить проблемы с производительностью после того, как вы докажете, что это действительно проблемы с производительностью!
Программистов тратить огромное количество времени, думая о том, или беспокоиться о , скорости некритических частей их программ, и эти попытки эффективности фактически оказывают сильное негативное воздействие, когда отладка и обслуживание считаются. Мы должны забыть о небольших эффектах, скажем, около 97% времени: преждевременная оптимизация - это корень всех зла . Однако мы не должны упускать наши возможности в том, что критически 3%.
(бумажные DonaldKnuth в "StructuredProgrammingWithGoToStatements")
прочитать this пожалуйста
Любое улучшение в том, что, скорее всего, будет ничтожна. Иди с этим, а не пытаешься изобрести колесо. –
Встроенные функции, как правило, эффективны. Я бы предположил, что используемый вами компилятор играет более значительную роль в эффективности. –
Да, есть несколько способов, но тогда вы должны рассмотреть язык ассемблера. –