Ver por etiquetas

Todas las etiquetas » Performance (RSS)

Memoria compartida entre C# struct

  Problemática: Imaginemos que estamos desarrollando un graphics ó physics engine en C#, el cual queremos que sea multiplataformas por lo que luego lo usaremos contra diferentes APIs como XNA, OpenTK y SharpDX. Trabajaremos con nuestras propias estructuras para Matrix4x4 ó Vector3 por ejemplo y luego las tendremos que traducir a las structs concretas de cada API.   La struct para Vector3 de nuestro motor puede ser tan simple como: public struct Vector {     public float X;...
Publicado por Javier | con no comments

WP7 Problemas de rendimiento con Struct (II / II)

Realicemos un pequeño benchmark para poder evaluar cual es la pérdida de rendimiento obtenido, el cual se producirá por: CPU: Tiempo empleado en gestionar las llamadas (realizar las copias de las estructuras) Para el test vamos a crear un proyecto para Windows Phone 7.1 con Visual Studio, y luego lo analizaremos con el profiler de WP7 corriendo directamente en un dispositivo real. La demo será muy simple, colocaremos un bucle en el método Draw que es donde más...
Publicado por Javier | 4 comment(s)

WP7 Problemas de rendimiento con Struct (I / II)

Recientemente he pasado bastantes horas optimizando código para Windows Phone 7, y una de las primeras cosas que hay que tener en mente es que el CLR(Common Language Runtime) de WP7 no es el de Windows. Incluso en la última versión (Mango) en la que han hecho grandes mejoras, como por ejemplo que ahora el GC (Garbage Collector) ofrece un rendimiento más decente con 2 generaciones, o como al aprovechamiento de las instrucciones SIMD. Otro factor a tener en cuenta para todos esos desarrolladores que...
Publicado por Javier | 1 comment(s)