2

Le compilateur VB.NET 2008 optimise-t-il sélectivement les instructions Select Case? Par exemple, une instruction Select Case avec une quantité suffisante de cas entiers peut être organisée comme une recherche binaire. Je demande cela parce que je suis curieux de savoir si je devrais ou non opter pour un cas de sélection à la place de If Statements avec plusieurs autres cas où des entiers ou d'autres types de données de base sont comparés.VB.NET Select Case Optimisation du compilateur?

Répondre

1

Select Case avec 40 choix est plus de 10 fois plus rapide qu'une chaîne de 40 instructions ElseIf. C'est plus d'amélioration que ce que vous attendez d'une recherche binaire. Je devinerais qu'un entier simple Select Case utilise n'importe quel équivalent de code machine moderne d'une instruction goto calculée - il compile de sorte qu'il se branche directement sur le "cas" approprié basé sur la valeur de l'entier. Je pense que Select Case est celui à suivre.

2

En général, vous devriez vous soucier de la lisibilité du code et de la maintenabilité au-delà de ce type de micro-optimisation des performances. À moins que ce commutateur ne soit dans une boucle qui est en cours d'exécution 1000 (millions de fois), il est très peu probable que ce soit le code de performance de votre application.

Prendre une décision et le bâton avec pour souci de cohérence. En général, n'effectuez pas le réglage du code de performance tant que vous n'avez pas analysé vos goulets d'étranglement.

Voir aussi this question.