Поделиться через


Советы по производительности .NET

 

Термин производительность обычно относится к скорости выполнения программы.Иногда можно увеличить скорость выполнения, следуя определенным основным правилам в исходном коде.В некоторых программах важно внимательно изучить код и использовать профилировщики, чтобы гарантировать, что он выполняется максимально быстро.В других программах нет необходимости выполнять такую оптимизацию, поскольку код выполняется приемлемо быстро при его написании.В этой статье список общих областей, в которых может пострадать производительность, а также советы по совершенствованию, ссылки на дополнительные разделы о производительности.Дополнительные сведения о планировании и измерении производительности см. в разделе .NET Framework Performance.

Упаковка–преобразование и распаковка–преобразование

Лучше всего избегать использования типов значений в случаях, когда они должны быть упакованы много раз, например в не универсальных классах коллекций, например, System.Collections.ArrayList.Упаковки-преобразования типов значений можно избежать с помощью универсальных коллекций, например, System.Collections.Generic.List<T>.Упаковка и распаковка являются процессами, требующими с точки зрения вычислений больших затрат.При упаковке типа значения должен быть создан совершенно новый объект.Это действие занимает на 20 минут больше времени, чем назначение простой ссылки.При распаковке процесс приведения может длиться в четыре раза дольше назначения.Дополнительные сведения см. в разделе Упаковка–преобразование и распаковка–преобразование.

Строки

При объединении большого количества строковых переменных, например в непрерывном цикле, используйте System.Text.StringBuilder вместо оператора + в C# или операторов объединения в Visual Basic.Дополнительные сведения см. в разделах Практическое руководство. Сцепка нескольких строк (Руководство по программированию на C#) и Операторы объединения в Visual Basic.

Деструкторы

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

Другие ресурсы

См. также

.NET Framework Performance
Основные понятия программирования
Руководство по программированию на Visual Basic
Руководство по программированию на C#