Кажется, что оптимизация - это потерянное искусство в наши дни. Разве не было времени, когда все программисты сжимали каждую унцию эффективности от своего кода? Часто это делают, ходя пять миль в снегу?
В духе возврата утраченного искусства, какие советы вы знаете для простых (или, возможно, сложных) изменений для оптимизации кода С#/. NET? Поскольку такая широкая вещь, которая зависит от того, что она пытается выполнить, поможет обеспечить контекст вашим советом. Например:
- При объединении многих строк вместо этого используйте
StringBuilder
. См. Ссылку внизу для предупреждения об этом. - Используйте
string.Compare
для сравнения двух строк вместо того, чтобы делать что-то вродеstring1.ToLower() == string2.ToLower()
Общим консенсусом, по-видимому, является измерение. Этот вид пропускает точку: измерение не говорит вам, что неправильно, или что с этим делать, если вы столкнетесь с узким местом. Однажды я столкнулся с узким местом конкатенации строк и понятия не имел, что с этим делать, поэтому эти советы полезны.
Моя точка даже для того, чтобы разместить это, - это место для общих узких мест и того, как их можно избежать, даже не столкнувшись с ними. Это даже не обязательно о коде подключи и играй, в котором каждый должен слепо следовать, но больше о том, чтобы понять, что производительность должна восприниматься, по крайней мере, несколько, и что есть некоторые общие проблемы, которые нужно искать.
Я вижу, что было бы полезно знать, почему отзыв полезен и где он должен применяться. Для наконечника StringBuilder
я нашел помощь, которую я сделал давно, на здесь, на сайте Jon Skeet.