Скомпилированная программа работает НАМНОГО медленнее после перехода на VS 2010 - PullRequest
6 голосов
/ 21 сентября 2010

Одно из наших критически важных приложений (C #) обрабатывает изображения hi-rez, и мы приложили немало усилий для его оптимизации. Он выполняет более 2,5 миллионов операций за ~ 2,5 секунды.

Мы годами использовали VS 2005, а на прошлой неделе все перенесли в VS 2010.

Точно такой же код проекта.

Теперь, когда я собираю приложение и запускаю его (за пределами IDE VS 2010), та же самая операция занимает 5+ секунд каждый раз.

Это большая проблема, и она совершенно больно. В настоящее время он установлен в режим Release (такой же, как в VS 2005).

Есть идеи, что может привести к удвоению времени выполнения, когда код точно такой же?

1 Ответ

4 голосов
/ 21 сентября 2010

Вы, вероятно, видите изменение, потому что вы переключились с таргетинга на среду выполнения .NET 2.0 на среду выполнения .NET 4.0.

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

Я бы предложил запустить ваш код через Profiler (например, ANTS Performance Profiler или JetBrain DotTrace от Redgate и посмотреть, где находятся новые узкие места. Вы можете двигаться вперед оттуда.

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