Al escribir vistas MVC, veo mucha llamada al método Html helper como EditorFor/LabelFor
. Estas extensiones usan mucha reflexión detrás de escena. Junto con la forma en que el enrutamiento, el encuadernado del modelo, la validación, la manipulación EF ... se manejan a través de la reflexión, me pregunto cuánto daña el rendimiento.¿Qué hace el marco MVC para evitar el bajo rendimiento que hereda del uso intensivo de la reflexión
Quiero saber qué hace MVC framework bajo el capó para abordar las implicaciones del uso de la reflexión en una escala tan grande.
Estoy seguro de que se debe hacer algún tipo de almacenamiento en caché, pero saber exactamente lo que hace será una buena experiencia de aprendizaje y la garantía de que no estamos comprometiendo el gran rendimiento por el aumento de la productividad.
Aunque no soy un experto, supongo que hay un uso intensivo de [compilación de los árboles de expresión dinámicos] (http: // MSDN .microsoft.com/es-us/library/bb345362.aspx). –
Usar la reflexión no significa ** necesariamente un mal rendimiento: consulte este excelente [artículo de MSDN Magazine] (http://msdn.microsoft.com/en-us/magazine/cc163759.aspx) sobre qué buscar –
El rendimiento es relativo. La reflexión es más lenta que las llamadas al método de enlace temprano, pero no, cuando se usa y almacena en caché, es lo suficientemente lenta como para hacer que una aplicación como un todo sea notablemente lenta cuando se usa de forma adecuada. –