Speedometer 2.0 Nedir?
Speedometer, TodoMVC'de çeşitli örnekler kullanarak yapılacak, tamamlanacak ve kaldırılacak yapılacaklar listesi öğeleri için kullanıcı eylemlerini simüle eder. Her TodoMVC örneği, DOM API'lerini farklı şekillerde kullanarak aynı yapılacaklar uygulamasını uygular. Bazıları DOM API'lerini doğrudan ECMAScript 5 (ES5), ECMAScript 2015 (ES6), ES6'dan ES5'e çevrilmiş hali ve Elm'den ES5'e çevrilmiş hali kullanarak çağırır. Diğerleri ise şu popüler JavaScript çerçevelerinden birini kullanır: React, Redux ile React, Ember.js, Backbone.js, AngularJS, (yeni) Angular, Vue.js, jQuery, Preact, Inferno ve Flight. Bu çerçevelerin birçoğu Facebook ve Twitter gibi dünyanın en popüler web sitelerinde kullanılmaktadır. Bu tür işlemlerin performansı, DOM API'lerinin hızı, JavaScript motoru, CSS stil çözünürlüğü, düzen ve diğer teknolojilere bağlıdır.
JavaScript ile fare hareketleri ve klavye girişi gibi kullanıcı tarafından yönlendirilen eylemler doğru bir şekilde taklit edilemez, ancak Speedometer, demo uygulamaları içinde tipik bir iş yükünü gerçek senaryolara sadık bir şekilde tekrarlamak için elinden geleni yapar. Sınırlı hassasiyetle ölçülebilecek kadar uzun çalışma süresi elde etmek için, yüzlerce yapılacaklar listesi öğesi eklemek gibi birçok işlemi senkron bir şekilde gerçekleştirir.
Modern tarayıcı motorları, senkron işlemlerin çalışma süresini azaltma stratejisi olarak bazı işleri asenkron olarak yürütürler. Mümkün olan en kısa sürede kontrolü tekrar JavaScript yürütümüne döndürmek, önemli bir hedef olmasına rağmen, böyle bir asenkron işin çalışma süresinin web uygulamasının performansının bütüncül bir ölçümünde yine de dikkate alınması gereken bir maliyeti vardır. Ayrıca, Vue.js ve Preact gibi bazı modern JavaScript çerçeveleri, bir optimizasyon teknik olarak DOM API'lerine asenkron olarak çağrı yapabilirler. Speedometer, bu asenkron işin çalışma süresini, senkron işlemlerin her bir yürütmesinden hemen sonra planlanan sıfır-saniyelik bir zamanlayıcı ile UI iş parçacığında yaklaşık olarak ölçer.
Speedometer, UI iş parçacığını doğrudan etkilemeyen ve uygulama tepkisini genellikle etkilemeyen eşzamanlı asenkron işleri ölçmeye çalışmaz.
Not: Speedometer, farklı JavaScript çerçevelerinin performansını karşılaştırmak için bir yöntem olarak kullanılmamalıdır, çünkü her çerçevedeki iş yükü büyük ölçüde farklılık gösterebilir.
Safari
Chrome