2009-08-31 6 views
3

Quel est le gain réel de mémoire/performance dans un automate ASP.NET MVC lors de l'utilisation de ces deux manières différentes de déclarer le modèle pour une vue?Différentes manières d'initialiser un modèle pour une vue dans ASP.NET MVC

User user = userService.GetByID(id); 
return View(user); 

ou

return View(userService.GetById(id)); 

Je suis en supposant que le dernier est un peu plus performant que nous n'initialise pas un objet, mais le premier est plus lisible. Serait-ce même important sur un serveur web avec des milliers de visiteurs?

Répondre

4

En fait, vous initialisez un objet dans les deux cas; ce que le premier fait, c'est que le second ne l'est pas: 1) réserver de l'espace pour une variable (qui ne concerne pas la performance, mais l'espace); 2) ajouter une référence à l'objet (c'est-à-dire incrémenter le nombre de références pour cet objet) puis supprimer la référence (décrémenter le nombre de références) de la ligne suivante.

Je ne crois pas que l'on puisse observer une différence de performance entre les deux. Cela dit, je préfère la seconde, car il n'y a pas besoin de la variable user, là; de toute façon, c'est juste une question de goût, il peut y avoir des raisons de style pour préférer le premier et les autres pour préférer le second.

+0

Eh bien, je ne sais pas si 'userService.GetById' crée un objet ou retourne un objet existant, mais j'espère avoir été clair ... – giorgian

4

Il n'y a aucune différence entre les deux instructions en ce qui concerne la mémoire allouée et le comportement du garbage collector. Utilisez celui que vous préférez lire :-)

Questions connexes