Ускорение C # - PullRequest
       43

Ускорение C #

20 голосов
/ 08 октября 2008

Это на самом деле два вопроса, но они очень похожи, и для простоты я решил, что я просто свожу их вместе:

  • Во-первых : Принимая во внимание устоявшийся проект на C #, какие есть приличные способы ускорить его помимо простой оптимизации в коде?

  • Во-вторых : Каковы хорошие способы значительно повысить производительность при написании программы на C #?

Пожалуйста, держитесь подальше от общих методов оптимизации, если они не C # специфичны .

Ранее запрашивались Python , Perl и Java .

Ответы [ 17 ]

0 голосов
/ 08 октября 2008

В дополнение к перечисленным выше рекомендациям по кодированию, включая использование StringBuilders (при необходимости) и предметов такого рода.

Я настоятельно рекомендую использовать инструмент профилирования кода, такой как ANTs Profiler от RedGate. Я обнаружил, что после выполнения стандартных шагов по оптимизации с использованием Profiler я могу дополнительно оптимизировать свой код, быстро идентифицируя области (области) кода, которые наиболее сильно поражены приложением.

0 голосов
/ 08 октября 2008

Не используйте много размышлений.

0 голосов
/ 08 октября 2008

Я рекомендую вам эти книги:

Эффективный C # .

Более эффективный C #

0 голосов
/ 17 ноября 2008

У меня есть следующая статья в MSDN, которая добавлена ​​в закладки, и я считаю ее хорошим справочником.

Улучшение работы приложения .NET

0 голосов
/ 08 октября 2008

Используйте Ngen.exe (должен поставляться с Visual Studio.)

http://msdn.microsoft.com/en-us/library/6t9t5wcf(VS.80).aspx

Native Image Generator (Ngen.exe) - это инструмент, который повышает производительность управляемых приложений. Ngen.exe создает собственные образы, которые представляют собой файлы, содержащие скомпилированный машинный код для конкретного процессора, и устанавливает их в собственный кэш изображений на локальном компьютере. Среда выполнения может использовать собственные образы из кэша вместо использования компилятора Just-in-Time (JIT) для компиляции исходной сборки.

0 голосов
/ 07 февраля 2009

Кэширование элементов, полученных в результате запроса:

private Item _myResult;
public Item Result
{
     get
     {
          if (_myResult == null)
          {
               _myResult = Database.DoQueryForResult();
          }
          return _myResult;
     }
}

Это базовый метод, который часто упускают из виду начинающие программисты, и один из самых простых способов повысить производительность в приложении.

Ответ перенесен из вопроса, который был признан обманом этого.

0 голосов
/ 08 октября 2008

NGEN поможет с некоторым кодом, но не рассчитывайте на него.

Лично, если ваш дизайн плохой / медленный, вы мало что можете сделать.

Лучшее предложение в таком случае - реализовать некоторую форму кеширования дорогостоящих задач.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...