67 votes

Est en mode strict plus performant?

N'exécution de javascript dans un navigateur dans la stricte mode' le rendre plus performant, en général? Faire tous les principaux navigateurs supplémentaires d'optimisation ou d'utiliser d'autres techniques qui permettront d'améliorer les performances en mode strict?

Edit: étant donné que aucun des principaux moteurs de mettre en œuvre stricte de la mode, je vais reformuler légèrement: Est en mode strict prévu, parmi ses autres objectifs, pour permettre aux navigateurs de présenter des optimisations ou d'autres améliorations de performance?

22voto

Jeff Walden Points 3009

Est en mode strict prévu, parmi ses autres objectifs, pour permettre aux navigateurs de présenter des optimisations ou d'autres améliorations de performance?

Si oui ou non il était prévu pour ce faire, je ne suis pas sûr, même si je pense que la réponse est oui.

Mais je peux dire avec certitude que le mode strict ne fournir ces possibilités, et des navigateurs de les mettre en œuvre, peu importe si la fourniture de ces occasions était intentionnel objectif pour l'ECMA comité. Cependant, je ne m'attends pas à toutes ces possibilités doivent être prises immédiatement. Dans de nombreux cas, le mantra est susceptible d'être exactitude d'abord, la performance plus tard, parce que le mode strict est pas largement utilisé en ce moment. (Je travaille sur Mozilla moteur JavaScript et ont mis en œuvre les différentes parties de mode strict, et nous sommes la mise en œuvre de cette façon en règle générale, bien que je pourrais probablement penser à une exception ou deux si j'ai essayé.)

21voto

CMS Points 315406

Le mode strict est pas vraiment à propos de la performance, une stricte variante de la langue, son objectif principal est d'éviter les erreurs de fonctionnalités.

Fondamentalement, son but est de rendre la langue plus sûr, l'introduction de beaucoup de semantical modifications, aussi d'autres de vérification d'erreur est faite, et des erreurs sont bruyants, dans le non-strict code de choses seulement en silence l'échec.

Concernant les performances, je pense que les éditeurs de navigateurs sont maintenant avoir un moment difficile maintenant de la mise en œuvre stricte de la mode, le problème est que le JS moteurs sont principalement basé sur ECMAScript 3, et de mettre en œuvre le mode strict est pas facile, car le champ d'application de la rigueur est très flexible, vous pouvez mélanger des non-strict et rigoureux code.

Voir aussi:

3voto

Dave Points 467

Pour la plupart, non. Si vous examinez attentivement les ECMAScript 5 du document de normes, vous remarquerez que presque toutes les occurrences de Mode Strict dans le pseudo-code des algorithmes montant de:

  if (isStrictMode) {
      //throw an (early) SyntaxError or TypeError
  }
  else {
      //return
  }

Il y a deux choses à noter à ce sujet:

  1. Les contrôles sur le Mode Strict n'existe pas dans ECMAScript 3. S'il est relativement léger, conforme implémentations de JavaScript sont maintenant en cours d'exécution au moins un contrôle conditionnel par rapport à leurs ECMAScript 3 homologues. Ouais...je sais une seule case comme cela brûle très peu de cycles d'horloge, mais peu de choses à ajouter
  2. Parce que le Mode Strict est d'abord un moment de l'analyse de la fonctionnalité de JavaScript de votre navigateur préféré ne va pas faire preuve de beaucoup de une baisse des performances lorsque le Mode Strict est activé pour un site web (par exemple, SunSpider). Qui est, les performances se dégradent se produit avant que le code est exécuté le sens qu'il pourrait être perceptible par les utilisateurs finaux, mais est largement incommensurable à l'aide de la Date de l'objet à mesurer le temps d'exécution du bloc

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X