2009-11-18 3 views

Répondre

2

Il est vraiment difficile de connaître la réponse à cette question sans en savoir plus sur l'environnement. Il semble qu'une vérification raisonnable serait d'exécuter des tests de performance en répétant cette tâche de nombreuses fois.

Les preuves empiriques sont parfois surprenantes par rapport à ce que vous attendez.

+0

+1 pour recommander des tests et expliquer brièvement pourquoi. –

0

En supposant que vous faites référence à un contexte RUNTIME et à une variable partagée:

In un environnement multiprocesseur, les écritures inutiles peuvent entraîner une dégradation des performances: vidage de la mémoire cache, surcharge de synchronisation, etc.

Alors oui, cela peut faire la différence ... obtenir le profil si la situation s'y prête.

+0

Donc vous dites que je SOUHAITE faire la vérification? – Shimmy

+0

Dépend de vos exigences de performance: certains pourraient dire qu'il s'agit d '"optimisation prématurée" dans les cas X, Y, Z tandis que dans d'autres cas (par exemple les pilotes de noyau) il peut être crucial de connaître la situation. – jldupont

+2

Il convient également de se rappeler qu'un saut conditionnel peut coûter plus cher que l'assignation elle-même (si la variable se trouve dans le cache L1 et qu'elle n'est pas fréquemment utilisée par les autres threads). Donc, en général, je suggère de ne pas faire une telle "optimisation" à moins que la logique et/ou le profilage suggère que les invalidations causées par le cache sont un goulot d'étranglement – Grizzly

0

La différence est négligeable. Vous verrez des différences de performances lors de la lecture et l'écriture de fichiers sur le disque, mais la performance du programme est mesuré en grand O. Lire:

BIG O notation

Surtout dans VB vous ne verrez pas la différence.

0

1) sera peut-être quelques nanosecondes plus rapide. Je suppose que par rapport à d'autres choses qui se passent dans votre code, cette différence est nanoscopique. D'autre part, j'écris habituellement (2) si je pourrais vouloir faire autre chose quand je sais que je suis réellement changeant le booléen. Cela me donne une place pour le faire.