Quelle est la conséquence des performances en utilisant le mot-clé 'With' dans vb.net au lieu d'utiliser la réutilisation du nom d'instance encore et encore?VB.NET 'Avec' une déclaration de performance?
Répondre
En supposant que vous le comparez à une référence de variable locale, il n'y a aucune différence; les deux vont émettre exactement la même IL. (Au moins en mode Release)
Cependant, si vous le comparez à des invocations répétées d'une propriété ou d'un indexeur, With
sera un peu plus rapide, et si vous le comparez aux invocations répétées d'une méthode, ça pourrait être beaucoup plus rapide. (Le mot-clé With
va créer une variable locale et l'affecter à l'objet que vous With
« d, la méthode ne sera appelée une fois plutôt que sur chaque ligne)
Il n'y a aucun coût de performance d'exécution. C'est juste du "sucre syntaxique" pour rendre votre code plus joli.
sub xyz (ByRef param as MyObj)
'Local ref, same as with
dim o2 as YourObject = param.YourObject
o2.callSomething()
'Bad performance
param.YourObject.callSomething()
end sub
S'il vous plaît également fournir quelques explications à votre réponse quant à la façon dont il répond à la question. – brimborium
- 1. Raccourcir une déclaration de tableau VB.NET?
- 2. VB.NET GroupBy Déclaration LINQ
- 3. Déclaration d'un tableau d'octets dans VB.NET
- 4. Déclaration Visual Basic 6.0 vers VB.NET
- 5. MISE À JOUR vs INSERT déclaration performance dans PostgreSQL
- 6. SQL dans des sous-requêtes INSERT Corrélées Performance Déclaration
- 7. vb.net plus de performance pour les objets en mouvement
- 8. Ai-je une fuite avec cette déclaration?
- 9. Sélectionner une déclaration avec un tableau
- 10. UIAlertView afficher une déclaration informative avec OK
- 11. Performance de WCF avec net.tcp
- 12. Problème de performance avec System.Net.Mail
- 13. Déclaration d'événement vb.net - ajout d'une attribution non sérialisée
- 14. Problème lors de la déclaration d'une méthode anonyme avec vb.net Action (Of T) et lambda
- 15. Puis-je mettre une déclaration de retour dans une serrure
- 16. Avec ... Fin avec Déclaration VB6 comme déclaration dans l'objectif-c
- 17. droit associativité ne fonctionne pas avec la déclaration de déclaration
- 18. Déclaration de chaîne Java
- 19. Mauvaise performance avec WindowsTokenRoleProvider
- 20. sp_executesql avec « IN » déclaration
- 21. colonne Mise à jour MySQL avec déclaration
- 22. serveur XML-RPC avec une meilleure erreur de déclaration
- 23. Utilisation de Container.DataItem avec une déclaration Si, dans <% %>
- 24. Delphi et codage de performance. Déclaration Performances et résultats de longueur de code
- 25. Annuler une déclaration CSS
- 26. Obtenir une adresse IP "réelle" avec VB.NET?
- 27. Castings/Conversion de type Performance
- 28. chaîne de déclaration de cas avec regex?
- 29. vb.net avec base de données
- 30. Performance atteinte avec CLOB/TEXT?
+1. Bien que je dirais que vous devriez seulement vous inquiéter de ces différences de performance si vous avez mesuré et trouvé un goulot d'étranglement de performance sérieux dans un bloc de code spécifique qui utilise With. "La micro-optimisation prématurée est la racine de tous les maux" – MarkJ
@MarkJ Je parle d'une énorme opération par lots (1000000+) entrées – Shimmy
Je ne savais pas que vous pouviez utiliser 'With' avec une méthode. Cool! – toddmo