[См. Правку @ снизу - проблема может быть не в том, что я изначально думал]
Привет всем,
Я пишу графическую библиотеку, которая обрабатывает ряд фильтров / эффектоввключая размытие.
Я пытался оптимизировать свой код и наткнулся на что-то, чего я не понимаю ...
Когда я запускаю код без ,Мастер производительности, простое размытие 3x3 на маленьком изображении может занять несколько секунд (намного дольше, чем следует).Если я прерву выполнение во время этой задержки, я получу:
No Source Available
System.dll!Microsoft.Win32.SystemEvents.WindowThreadProc() + 0xc2 bytes
Адрес соответствует между запусками / щелчками
Если я запускаю код с помощью мастера производительности, эффект размытия происходит с нет заметная задержка.
Я вижу, что процессор на 50% (двухъядерный ЦП, нет многопоточного банкомата, поэтому используется максимум 1 ядро) для продолжительности размытия в зависимости от того, какой метод Iиспользуйте для запуска моего приложения.
Если я увеличу сложность размытия, чтобы получить заметные задержки, я бы предположил, что подключение профилировщика повышает производительность как минимум на 2 порядка.
Я попытался переключиться с определения отладки на выпуск сборки и получить тот же результат.
Может кто-нибудь объяснить мне, почему мой код будет работать быстрее с подключенным профилировщиком?Такое чувство, что я где-то совершаю глупую ошибку
РЕДАКТИРОВАТЬ:
Сценарии / Скорости:
- В Windows XP:
- Отладка в VS: Медленный
- Профилирование в VS: быстрое
- Отладка / выпуск Построение вне VS: Быстрое
Затем я переключился на вторую машину и получил ...
- В Windows 7:
- Отладка в VS: Быстрая
- Профилирование в VS: быстро
- Отладка / выпуск Построить вне VS: быстро
Что, по-видимому, указывает на то, что я неправильно определил проблему -Дело не в том, что профилировщик улучшает вещи, а в том, что отладка в IDE убивает его ... Сначала я не подозревал, что отладка была проблемой, так как я начал разрабатывать на машине Win7, у которой не было проблем, затем переключился на машину XP иПредполагается, что изменение скорости было связано с аппаратными различиями.Только когда я начал профилировать, я увидел, как быстро это работает ...