2009-10-04 9 views
0

Est-il possible de détecter qu'un navigateur Firefox exécute l'interpréteur JavaScript TraceMonkey? Si oui, est-il possible de le faire avec JavaScript? Une solution qui consiste à examiner les bibliothèques binaires ou partagées du navigateur est également OK pour moi. Je cours sous Linux avec Firefox 3.0.14 dès maintenant.Comment détecter TraceMonkey?

+4

Qu'essayez-vous d'accomplir globalement? –

+0

Je veux comparer mon code JavaScript, et pour cela je veux savoir si le navigateur utilise TraceMonkey. Il me semble que mon JavaScript à gros chiffres tourne à peu près à la même vitesse sur Firefox 3.0.14 et Firefox 3.5.2, ce dernier étant seulement 10% plus rapide. J'hésite à le croire, car TraceMonkey devrait être beaucoup plus rapide. – pts

+0

Je crois que le principal avantage de TraceMonkey serait de fournir des efficacités dans des domaines tels que le flux de contrôle; Si votre code est en effet "chiffré", il n'y aurait aucune raison de s'attendre à une amélioration massive, car tous les calculs sont déjà effectués en code natif. Si, par exemple, vous itérez sur les éléments d'un tableau et leur appliquez un calcul, le surdébit de l'itération sera réduit, mais les calculs réels seront toujours effectués par les mêmes routines de code natif qu'avant et ne montre aucune amélioration. – NickFitz

Répondre

3
  1. entrez "about: config" comme URL
  2. que vous ferez attention
  3. recherche "JAT"

vous pouvez vérifier si elle est activée en regardant:

javascript.options.jit.chrome -> pour l'interface utilisateur du navigateur et les plugins

javascript.options.jit.content -> pour le contenu Web

(vous pouvez également modifier les valeurs)

btw. Si votre code est un peu complexe ne vous attendez pas à obtenir une vitesse comparable à V8. Tracemonkey échoue avec le code embranché (il peut être plus lent que spidermonkey).

Plus d'info: http://hacks.mozilla.org/2009/07/tracemonkey-overview/

+0

Merci pour la réponse utile. Seulement Firefox 3.5 a ces options JIT, Firefox 3.0.14 n'en a pas. (Il est activé pour le contenu uniquement.) Néanmoins, cela ne fait aucune différence pour mon code JavaScript d'éteindre JIT dans Firefox 3.5.2. – pts

+0

Tracemonkey n'est disponible que pour les versions FF 3.5 et supérieures. Mais sur les versions de développement 3.6 et 3.7, il est encore très inutile pour le code non-complexe. Essayez de garder vos boucles aussi simples que possible pour obtenir les avantages JIT. – Peter

0

Ainsi, 3.0 ne pas TraceMonkey, et au sujet de votre commentaire que 3.5 ne fonctionne pas non plus - vous utilisez peut-être fourni distro-64 bits? Je me souviens avoir lu que tracemonkey était désactivé sur les versions 64 bits (le support a été implémenté seulement récemment et n'est pas dans Firefox 3.5).