Почему мое приложение WPF работает медленно на определенных системах - PullRequest
8 голосов
/ 13 июля 2011

У меня проблемы с производительностью пользовательского интерфейса моего приложения WPF на некоторых системах. На моей системе разработчика она работает просто отлично, на некоторых других системах, однако производительность действительно плохая. Проблема возникает, например, при перемещении разделителей, изменении размера FlowDocuments или наведении на кнопки.

Разница в производительности напрямую не связана с очевидными «спецификациями» компьютера. Приложение работает нормально на нетбуке (Intel Atom N550, 1 ГБ ОЗУ, индекс производительности Windows: 2.0), но не на настольном компьютере (I7 2600, 8 ГБ Ram, ATI Radeon HD 5700, индекс производительности Windows: 7.4). Обе системы работают под управлением Windows 7. Приложение построено с использованием .NET 4.0. Я попытался форсировать рендеринг программного обеспечения, используя RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly. Это, однако, не имеет никакого значения.

Что вызывает эту проблему? Как я могу это исправить?

Ответы [ 2 ]

8 голосов
/ 26 июля 2011

Похоже, что это может быть ошибка Wpf 4, на которую мы были наложены, которая влияет на приложения со сложными визуальными деревьями Wpf.Это обсуждается в этой теме http://social.msdn.microsoft.com/Forums/en/windowsaccessibilityandautomation/thread/6c4465e2-207c-4277-a67f-e0f55eff0110. Это даже повлияло на конструктор Workflow 4 в VS 2010 - см. http://social.msdn.microsoft.com/Forums/en/wfprerelease/thread/1f20c37f-1b9e-4b6d-904f-a6b518e4187a. В соответствии с этим потоком существует исправление, которое вы можете попробовать: http://support.microsoft.com/kb/2484841

Вы можете получить хорошую идею, если это проблема, подключив отладчик к своему приложению, когда оно зависает / заикается, и посмотрите, видите ли вы много фреймов UiAutomation InvalidateAutomationAncestors в стеке.

0 голосов
/ 13 июля 2011

Может быть, проблема x64 против x86? Установка цели платформы на Любой ЦП.

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