2011-11-28 10 views
7

Hasta donde yo sé, las aplicaciones WPF deberían funcionar más rápido que las aplicaciones de Windows Forms porque las aplicaciones WPF usan DirectX para renderizar en lugar de GDI. ¿Pero qué tipo de aplicación comenzará más rápido: WPF o Windows Forms? ¿El tiempo de inicio será más o menos el mismo o un tipo de aplicación será considerablemente más rápido que el otro?¿Qué tipo de aplicación se inicia más rápido: Windows Forms o WPF?

No estoy apuntando a ningún sistema operativo específico.

+0

¿Está dirigido a sistemas operativos específicos? –

+0

No, solo tengo curiosidad por saber cómo difiere el rendimiento inicial entre los diferentes tipos y por qué. –

Respuesta

2

Creo que la hora de inicio será más o menos la misma. He creado algunas aplicaciones WPF recientemente y en algunos casos creo que el tiempo de carga inicial es un poco más lento que las formas ganadoras, pero no es mucho y WPF más que lo compensa cuando la aplicación está en funcionamiento.

0

Desde mi experiencia, creo que WPF es bastante reactivo al inicio en comparación con las formas de pago. Sin embargo, la pregunta es difícil, especialmente considerando que WPF puede contener el otro y viceversa.

me gustaría seguir la filosofía de este artículo: http://joshsmithonwpf.wordpress.com/2007/09/05/wpf-vs-windows-forms/

WPF y formularios Windows Forms no son más que la misma herramienta, y se supone que ninguno de ellos para sustituir a la otra;)

La pregunta tiene una muchos duplicados en este foro, por favor revise aquí para un enlace y discusión y todos ellos: WPF vs. Windows Forms

+0

Nunca has intentado usar aplicaciones WPF en Windows XP, por el sonido :) –

3

Solo para señalar, en mi experiencia el renderizador WPF es de hecho bastante más lento que Windows Forms, a pesar de usar DirectX . Esto se debe a que se realizan muchos cálculos de tesselación y diseño en el lado de la CPU, lo que cancela de manera efectiva la ganancia de rendimiento del uso de la GPU.

Simplemente busque "WPF Slow" o "WPF Performance" y descubrirá horrorizados a los desarrolladores que aprendieron el tiempo y el esfuerzo de convertir WinForms en WPF debido a la pérdida de GPU, ya que el resultado es más lento que la aplicación original.

Sin embargo ... Voy a decir esto. WPF es muy superior a WindowsForms en términos de diseño, capacidades gráficas, productividad del desarrollador (enlace de datos), animación, apariencia, etc. Si el rendimiento realmente es un problema, en ciertas áreas puede optimizarlo. Por ejemplo, ¿sabías que puedes obtener una API para escribir directamente en el mapa de bits en WPF (ver la clase WriteableBitmap) para hacer operaciones similares a GDI en la memoria? Esto es (sorprendentemente) aproximadamente 20 veces más rápido que las primitivas WPF para algunas operaciones.

De manera similar, puede usar la virtualización para mejorar el rendimiento de las cuadrículas de datos, etc. Telerik tiene un ejemplo de su cuadrícula desplazándose 1,000,000 filas en tasas de cuadros interactivos.

En conclusión, piense en lo que está haciendo y vea ejemplos similares en la web. ¿Estás haciendo una adquisición y visualización de datos científicos en tiempo real o simplemente una línea estándar de aplicaciones de negocios? Comparar ejemplos similares para ver de qué es capaz el marco te ayudará en tu decisión.

Actualización 2013 Q3

Como una actualización, en diversos proyectos que estoy viendo ahora más rápido y un rendimiento más rápido de WPF moviendo cualquier cosa y todo lo que fuera el hilo de interfaz de usuario. P.ej. Deje el hilo de la interfaz de usuario solo para la interfaz de usuario, haga todo el trabajo posible con la Biblioteca de tareas paralelas o RX. Haga que todo esté sincronizado y no bloquee el subproceso de interfaz de usuario mientras espera.

Elimine los errores de enlace, ya que contribuyen a los problemas de rendimiento de WPF.

Puede mover animaciones (por ejemplo, esperar o cargar animaciones) en un hilo diferente para la animación sin problemas. Puede usar render-to-bitmap cuando realiza transiciones animadas.

¿La larga historia corta? Es posible obtener un gran rendimiento de las aplicaciones de WPF (así como de una interfaz de usuario ingeniosa), ¡pero es necesario que trabaje un poco más!

Cuestiones relacionadas