Bazı araştırma ve performans isabet anlamak için en kolay yolu 2012
şey çözünürlükleri kullanmak gerekir ki geri angularjs CSP desteği tanıttı olduğunu initial commit (see issue on Github too) bakmaktır yaptılar (alt) ifadeleri gibi
HTML şablon dosyalarınızdaki Açısal ifadelerde
. Bu açısal ayrıştırıcı, bu ifadeleri ayrıştırmak için ilk olarak new Function(arguments, code) kullanılır. Ancak, CSP'yi desteklemek için new Function()
veya eval()
kullanamazsınız. Sihirli sayı% 30, http://jsperf.com/angularjs-parse-getter/4'dan (source) geliyor gibi görünüyor. Sonuçların yorumlanması, for
döngüsüne sahip kodun (yani, montajda atlar), kodlanmış olan/genişletilmiş bir for
döngüsüne sahip koddan daha yavaş olmasıdır.
Önceki paragrafların ışığında, performans isabetini azaltmak için yapabileceğiniz anlamlı bir şey olduğuna inanmıyorum. Belki (çaresiz iseniz) sadece uzun ifadeleri kullanmayın (a.b.c.d.e.f.g.h
gibi) ve oldukça kısa olanları kullanın, ancak kodunuzu optimize etmenin uygun bir yol olduğunu düşünmüyorum. (CSP etkin için) ASTInterpreter
ve ASTCompiler
(devre dışı CSP için): two parsers vardır 2015
Hızlı ileri, angularjs ölçüde değişti Codebase ama görebilirsiniz. Belki de ASTInterpreter
'u ASTCompiler
ile karşılaştırmak için bu ayrıştırıcılarda kod değerlendirme performanslarını koyabilirsiniz.
HTH
muhtemelen yolları önbelleğe veya derin yollara sığ adlar yaparak aramalarını azaltabilir (örn. 'Memesinin = a.b.c.d.e.x'). – dandavis