Estoy programando un juego usando C#, por lo tanto, estoy muy preocupado por el rendimiento.Clase VS ref. Estructura
Me gustaría saber cuáles son las principales diferencias, y si es posible, las consideraciones de rendimiento de utilizar una clase para pasar datos, o una estructura pasada por referencia.
No deseo copiar los datos, por razones de rendimiento (supongo que pasar por ref es mucho más rápido que por su valor aquí).
Sé que una clase se pasa siempre por referencia y que una estructura se pasa por valor, pero estoy hablando de pasar la estructura por referencia aquí.
Un ejemplo de los datos que deseo pasar:
public delegate void PathCompleteDelegate(List<PathFinderNode> path);
public struct PathFinderJob{
public PathCompleteDelegate callback;
public Vector3 start, end;
public PathSize unitSize;
public BoxCollider boxCollider;
}
En el ejemplo anterior, sería el uso de una clase a hacer la diferencia? Si es así, ¿cuál sería la diferencia? ¿Sería una clase más rápida que una estructura en este ejemplo? ¿Por qué?
Gracias. Joao Carlos
¿Has probado los perfiles de rendimiento de ambos enfoques? Si la estructura tiene un alcance fuera de un método, estará en el montón de todos modos (como en, dentro de una clase en el montón). Sospecho que la clase o la estructura tienen el mismo rendimiento en términos de llamadas a métodos. –
No tengo mucha experiencia en la creación de perfiles, e hice un rápido análisis de perfiles usando el generador de perfiles integrado de Unity3D, pero no vi la diferencia, sin embargo, no sé qué tan bueno es el generador de perfiles integrado con este tipo de "peces pequeños" , o si vería una diferencia en absoluto entre todos los demás perfiles relacionados con el juego. –
No desperdiciaría mi tiempo en estructuras mientras programaba un juego en un idioma OO. El problema que ** I ** enfrentaría antes de tener problemas de rendimiento es ** no terminar ** el juego. Las clases y los objetos aumentan la velocidad de desarrollo IMO. – Bitterblue