2009-12-04 14 views
5

Tenemos una aplicación que genera alrededor de 100 animaciones en tiempo de ejecución y todas se agregan a un solo guión gráfico y luego se reproducen. El problema es que la animación es extremadamente lenta. Los objetos que se están animando son formas y splines y se realiza una buena cantidad de cálculos en el backend para generar las splines personalizadas. La computadora en ejecución es un núcleo cuádruple con una buena tarjeta gráfica.¿Cómo podemos mejorar el rendimiento de nuestras animaciones WPF (100 de ellas)?

¿Alguna sugerencia sobre cómo podemos solucionar esto? ¿Necesitamos dividir las animaciones en múltiples guiones gráficos o animar en diferentes lienzos?

Gracias

+0

¿qué versión de sistema operativo? ¿Cuántos elementos de UI se están animando? –

+0

Se ejecuta en Windows 7. En cada animación, solo un objeto está animado, pero hay alrededor de 100 animaciones en un guión gráfico. – user180812

+0

¿La animación simplemente cambia la posición de los objetos o también implica cambiar el tamaño/forma? Si es el primero, entonces debería ser posible animar esos muchos objetos. Si el más tarde entonces le das al procesador una gran cantidad de cómputo y, por lo tanto, la perfusión lenta. –

Respuesta

2

Su poco difícil saber cuál es el retraso de su animación sin ver la animación y el código. Pero le daré puntos generales que pueden ayudar a mejorarlos.

  1. Mueva su cálculo en diferentes subprocesos, si hay un cálculo muy pesado. El hilo del asignador está ocupado haciendo su gestión de la interfaz de usuario, por lo que si pone todo en un hilo, ciertamente ralentizará las cosas.
  2. Reutilice sus splines, formas, etc. Esto sin duda lo ayudará, ya que también liberará su aplicación de las costosas rutinas de recolección de basura. De hecho, antes de comenzar la animación, muestra algunas animaciones diferentes, como reloj, etc. para crear todos los objetos requeridos al principio.
  3. Explore las opciones de almacenamiento en caché de mapas de bits e intente implementarlas.
Cuestiones relacionadas