2011-07-13 16 views
7

Tengo problemas con el rendimiento de la interfaz de usuario de mi aplicación WPF en ciertos sistemas. En mi sistema de desarrollo funciona bien, en ciertos otros sistemas, sin embargo, el rendimiento es realmente malo. El problema ocurre, p. al mover divisores, cambiar el tamaño de FlowDocuments o al pasar el mouse sobre los botones.¿Por qué mi aplicación WPF es lenta en ciertos sistemas?

La diferencia de rendimiento no está directamente relacionada con las 'especificaciones' obvias de la computadora. La aplicación funciona correctamente en una netbook (Intel Atom N550, 1GB de RAM, índice de rendimiento de Windows: 2.0), pero no en una computadora de escritorio (I7 2600, 8GB Ram, ATI Radeon HD 5700, índice de rendimiento de Windows: 7.4). Ambos sistemas ejecutan Windows 7. La aplicación está compilada con .NET 4.0. He intentado forzar la representación del software utilizando RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly. Sin embargo, esto no hace ninguna diferencia en absoluto.

¿Qué está causando este problema? ¿Cómo puedo arreglarlo?

+1

Dos preguntas, en primer lugar y fáciles de pasar por alto, ¿son los controladores para la PC lenta de ATI o los que usan controladores stock de Windows 7 que 'simplemente funcionan'? y segundo, ¿está utilizando algún control de interfaz de usuario personalizado o de terceros? – Seph

+2

El problema podría estar en una versión específica de los controladores de pantalla y en el proveedor del controlador también – sll

+0

¿Qué ediciones de Windows 7 tiene en estas máquinas? He experimentado algunos problemas de rendimiento WPF en Windows 7 Ultimate y se ha ido después de instalar Windows 7 Enterprise en la misma máquina. – treetey

Respuesta

7

Parece que podría ser el error de Wpf 4 que nos molestó que afecta a las aplicaciones con árboles visuales complejos de Wpf. Se discute en este hilo http://social.msdn.microsoft.com/Forums/en/windowsaccessibilityandautomation/thread/6c4465e2-207c-4277-a67f-e0f55eff0110. Incluso afectó al diseñador de Workflow 4 en VS 2010 - ver http://social.msdn.microsoft.com/Forums/en/wfprerelease/thread/1f20c37f-1b9e-4b6d-904f-a6b518e4187a. De acuerdo con ese hilo, hay una revisión que puede intentar: http://support.microsoft.com/kb/2484841

Puede hacerse una buena idea si este es el problema al adjuntar un depurador a su aplicación cuando se cuelga/tartamudear y ver si ve muchos marcos de UiAutomation InvalidateAutomationAncestors en la pila.

+0

@FromTheMountain, ¿alguna vez arreglaron esto? ¿Funcionó la instalación del arreglo caliente? Por favor, comenten, estoy teniendo el mismo problema. – RayLoveless

+0

¿La actualización a .NET 4.5 solucionó el problema? – RayLoveless

+0

@RayL - Estoy usando 4.5 y sigo teniendo este problema. Tampoco puedo instalar KB2484841. Apuesto a que ha sido incluido en la versión dll posterior que ya tengo. Pero como dije, todavía tengo problemas con la automatización de mis controles con árboles visuales complejos. –

0

¿Quizás un x64 contra x86 problema? Establecer el objetivo de la plataforma a Cualquier CPU.

+0

Pensé en esto también. De hecho, estaba configurado en x86. Desafortunadamente establecerlo en Cualquier CPU no solucionó el problema. – FromTheMountain

+0

Algunas de nuestras propias aplicaciones han tenido problemas con compilaciones de "Cualquier CPU" en máquinas x64. ¿Intentó hacer una compilación específica para x64? – hyp

Cuestiones relacionadas