Si il n'y a aucune différence, j'avais doute que vous remarqueriez, sauf si vous exécutez ce beaucoup, beaucoup, beaucoup de fois, ou à moins que x et y sont vraiment intensive du processeur en quelque sorte. Je n'ai jamais vu cette identifiée comme un possible problème de performance avec Coldfusion depuis MX 7.
Je vous conseille d'utiliser le format qui est le plus lisible pour vous. L'ajout de bugs de votre code en le rendant difficile à lire sera un impact plus important que les différences de performances de ces deux formats.
Personnellement, je préfère voir le NEQ version telle qu'elle se lit mieux et est plus fréquente dans les cas de MUCOVISCIDOSE.
<cfifxNEQy>
Dans ma tête de lit, "Si x n'est pas égal à y...", alors que....
<cfifNOTxEQy>
lit "si pas de x égal à y..." n'a pas de sens en anglais.
Si vous êtes vraiment préoccupés par le rendement dans ces cas, vous pouvez utiliser les Comparer ou CompareNoCase sont censés être plus performants que les EQ.
Cela dépend vraiment: sur la version de ColdFusion et les types de données utilisés. Dans certains cas, il est préférable d'utiliser des opérateurs de comparaison lorsque vous savez que vous êtes en comparant ces types de données spécifiques.
Il y avait un article dans la longue allée Développeurs ColdFusion Journal il y a quelques années de mesure de la performance des différents opérateurs dans exactement ces scénarios (également à l'aide de certaines fonctions de Terry souligné). Si je me souviens bien, c'était sur le CF 6 ou 6.1 et a montré assez de différences significatives de performance. Mais alors garder à l'esprit qu'ils l'ai testé qu'en l'enveloppant à l'opérateur une utilisation dans un grand nombre d'itérations pour obtenir des chiffres en premier lieu.
Comme Sorensen mentionné, il y a peu ou pas de decernable différence de performances. Penser logiquement à propos de ce problème, on peut déterminer quelques petites choses. Dans un cas, vous demandant le comparateur de vérifier l'égalité, alors vous êtes en niant les résultats. Dans les autres cas, vous demandez au comparateur de vérifier l'inégalité. Logiquement, la simple exécution de l'inégalité est moins d'étapes. Cependant, notre bon ami le hot spot compilateur peut-être en train de changer, pour nous, dans le fond, deux états de la même.
Le PAS de l'opérateur est un opérateur booléen, tandis que le neq est un booléen comparateur. not x eq y est logiquement équivalent à x neq y et se lit mieux. MAIS, lorsque la situation devient plus complexe not (x eq y or a eq b) peut être plus facile à comprendre basée sur le contexte de x neq y and a neq b et, a fortiori, lorsque vous commencez à obtenir des logiques de comparaison (not (x eq y or a gt b))
Si il n'y a aucune différence, j'avais doute que vous remarqueriez, sauf si vous exécutez ce beaucoup, beaucoup, beaucoup de fois, ou à moins que x et y sont vraiment intensive du processeur en quelque sorte. Je n'ai jamais vu cette identifiée comme un possible problème de performance avec Coldfusion depuis MX 7.
Je vous conseille d'utiliser le format qui est le plus lisible pour vous. L'ajout de bugs de votre code en le rendant difficile à lire sera un impact plus important que les différences de performances de ces deux formats.
Personnellement, je préfère voir le NEQ version telle qu'elle se lit mieux et est plus fréquente dans les cas de MUCOVISCIDOSE.
Dans ma tête de lit, "Si x n'est pas égal à y...", alors que....
lit "si pas de x égal à y..." n'a pas de sens en anglais.
OriginalL'auteur Dan Sorensen
Si vous êtes vraiment préoccupés par le rendement dans ces cas, vous pouvez utiliser les Comparer ou CompareNoCase sont censés être plus performants que les EQ.
https://web.archive.org/web/20090212085046/http://livedocs.adobe.com/wtg/public/coding_standards/performance.html
Mais gardez à l'esprit ces recommandations sont à partir de 5 ans, et il n'y a pas plus de preuve est cette page qu'il est vrai.
OriginalL'auteur Terry Ryan
Cela dépend vraiment: sur la version de ColdFusion et les types de données utilisés. Dans certains cas, il est préférable d'utiliser des opérateurs de comparaison lorsque vous savez que vous êtes en comparant ces types de données spécifiques.
Il y avait un article dans la longue allée Développeurs ColdFusion Journal il y a quelques années de mesure de la performance des différents opérateurs dans exactement ces scénarios (également à l'aide de certaines fonctions de Terry souligné). Si je me souviens bien, c'était sur le CF 6 ou 6.1 et a montré assez de différences significatives de performance. Mais alors garder à l'esprit qu'ils l'ai testé qu'en l'enveloppant à l'opérateur une utilisation dans un grand nombre d'itérations pour obtenir des chiffres en premier lieu.
OriginalL'auteur AgentK
Comme Sorensen mentionné, il y a peu ou pas de decernable différence de performances. Penser logiquement à propos de ce problème, on peut déterminer quelques petites choses. Dans un cas, vous demandant le comparateur de vérifier l'égalité, alors vous êtes en niant les résultats. Dans les autres cas, vous demandez au comparateur de vérifier l'inégalité. Logiquement, la simple exécution de l'inégalité est moins d'étapes. Cependant, notre bon ami le hot spot compilateur peut-être en train de changer, pour nous, dans le fond, deux états de la même.
OriginalL'auteur Jay
Le PAS de l'opérateur est un opérateur booléen, tandis que le neq est un booléen comparateur.
not x eq y
est logiquement équivalent àx neq y
et se lit mieux. MAIS, lorsque la situation devient plus complexenot (x eq y or a eq b)
peut être plus facile à comprendre basée sur le contexte dex neq y and a neq b
et, a fortiori, lorsque vous commencez à obtenir des logiques de comparaison (not (x eq y or a gt b)
)OriginalL'auteur MightyE