La respuesta no está escrito desde la perspectiva de un buen rendimiento centró codificador que ya conoce todos los trucos y trampas por ejemplo .:
- No LINQ in tight loops. De Verdad. Ninguna. Nunca.
- eche sus enumeraciones de enteros antes de la comparación
- Cuidado con las estructuras del tipo valor
- 'nuevo' es el nuevo Grue
- CLRProfiler es su amigo
- Otros perfiladores pondrán tiempo de construcción de variables en lugares extraños
La respuesta Sí es muy relevante para un codificador que no conoce las trampas del diseño de C#, o que se ha tragado el coolade "Profiling is evil".
Inicializo un lote (quizás incluso MUCHO) de matrices y matrices en nuestro código. He notado que la inicialización diferida con: if (variable == nulo) // variable = nueva Variable()
parece menos eficaz que construir desde el principio. Como readonly te obliga a construir en el constructor, obtienes los beneficios de la localización de datos en la memoria y te impide hacer otras cosas desastrosas de "compilar y reemplazar en tiempo de ejecución". C# puede ahogarse horriblemente en el recolector de basura.
C# nos permite escribir muy fácilmente terriblemente código de memoria. malloc fue una forma de obligarnos a pensar en (de) la asignación. De la misma manera, solo nos obliga a pensar en ello.
Ejecute CLRProfiler, vea usted mismo la cantidad de spam de memoria que realiza. Si ha estado escribiendo HPC sin una disciplina casi sobrehumana, lo más probable es que esté enviando correo no deseado por correo no deseado y de solo lectura puede ayudar a evitar que lo haga.
Dicho esto, si no está escribiendo el código HPC, la optimización prematura es la raíz de todo lo que se aprende sobre la arquitectura de la máquina. Oh, no, espera ... quise decir mal, según la doctrina estándar. Todos saludan la doctrina estándar.
Una pregunta en una pregunta. Si es de solo lectura, ¿no reduce la memoria para lo que es un buen uso político de solo lectura en los campos? – pedrofernandes
@ pho3nix: Erm, ¿qué hay de aplicar las prácticas de diseño? (Si una variable no debe modificarse, ¡no permita que se modifique!) – Noldorin
Gracias por la respuesta rápida. – Chaddeus