lookupView-patch
تم التنفيذ الآن عبر Map بدلاً من Array.
الوقت المستغرق في بدء تشغيل التطبيق في lookupView - لمثيل التطوير:
-
بدون تصحيح: 124 مللي ثانية
Firefox Profiler (مكدس الاستدعاءات مصفى إلىlookupView) -
مع التصحيح: 9 مللي ثانية
Firefox Profiler (مكدس الاستدعاءات مصفى إلىlookupView)
الوقت الموفر: ~115 مللي ثانية
هذا يقلل الوقت المستغرق داخل appendOutletView من 1.083 مللي ثانية إلى 946 مللي ثانية - لمثيل التطوير.
تصحيح على مساعدي handlebars الخام
نعم، إنها في الواقع نسخة ولصق مع تغيير واحد: استخدم فحصًا غير مكلف لـ isPath.
// يستبدل @ember/-internals/utils isPath
// @see: https://github.com/emberjs/ember.js/blob/3537670c14883346e11e841fcb71333384fcbc87/packages/%40ember/-internals/metal/lib/path_cache.ts#L5-L7
// @see: https://github.com/emberjs/ember.js/blob/255a0dd3c7de1187f4a2f61a97cf78bfff8f66a8/packages/%40ember/-internals/glimmer/lib/utils/bindings.ts#L70
let isPath = context.indexOf('.') > -1;
على سبيل المثال، يؤدي renderTopicListItem في النهاية إلى العديد من استدعاءات _getPath (لتوفير 50-100 مللي ثانية أخرى):
Firefox Profiler (مكدس الاستدعاءات مصفى إلى _getPath داخل renderTopicListItem)
ربما تكون الاستدعاءات المكلفة لـ _getPath شيئًا يجب تحسينه في Ember.js وليس في Discourse.
وتفقد Firefox Profiler للحصول على رؤى حول تنفيذ JavaScript: