Ölçüm · tarayıcı
Kendi bilgisayarınızda ölçün
Dokuz test bu sayfada, tarayıcınızın WebAssembly motorunda koşar: KabaLang ve C++ aynı kaynaktan WebAssembly'e derlendi, JavaScript tarayıcının kendi dili, Python ise Pyodide ile gelir. Sunucuya iş düşmez; sonuçlar cihazınızda kalır. “Sonuçları kopyala” düz metin özetini panoya alır.
Ölçüm uygulaması yükleniyor… Bu bölüm JavaScript ve WebAssembly ister; sunucudaki ölçümler hız karşılaştırması sayfasında betiksiz okunur.
Nasıl çalışıyor?
Arayüz de KabaLang
- Arayüz: yukarıdaki ölçüm uygulaması KabaLang ile yazıldı ve KabaUI'nin web yüzeyiyle tuvale
çiziliyor — masaüstünde pencere açan aynı
pencerekodu, burada WebAssembly olarak (kabalang derle --hedef web). Yazılar tarayıcının yazı tipiyle çizilir. - Arka planda: testler ayrı bir iş parçacığında (Web Worker) koşar; ölçüm sürerken sayfa donmaz.
- KabaLang: program.kbl web hedefinde derlendi (WebAssembly, 32 bit belleğe indirilmiş; bütün güncel tarayıcılar). Dizin sınırı ve taşma denetimleri yerli derlemedeki gibi açık.
- C++: aynı program.cpp,
clang++ -O2ile WebAssembly'e (WASI) derlendi; standart kütüphanesiyle birlikte. - JavaScript: her test için aynı algoritmanın doğal JavaScript yazımı (test sayfalarında
program.js); tarayıcının kendi motorunda koşar. - Python: CPython'un WebAssembly derlemesi Pyodide (yaklaşık 12,9 MB). Ölçüm başlayınca indirilir; “Python” işaretini kaldırırsanız hiç indirilmez.
Yöntem
Sunucudaki ölçümden farkı
- Ne ölçülür: programın başından sonuna geçen süre. WebAssembly'de modülün örneklenmesi ve çalışması, JavaScript'te program işlevinin çağrısı, Python'da programın yorumlanması. İndirme ve derleme süreye girmez; süreç başlatma maliyeti yoktur (sunucu ölçümünde vardır).
- Isınma ve tekrar: her ölçümden önce bir ısınma koşusu yapılır ve sayılmaz; 3 ölçümün en iyisi gösterilir. Python ısınmasız tek koşu yapar.
- Kısa testler: tarayıcı saatleri kabadır (bazı tarayıcılarda 1 ms). Isınma koşusu 25 ms'den kısa süren testte bir ölçüm, art arda koşuların ortalamasıdır.
- Çıktı doğrulama: her koşunun çıktısı beklenen çıktıyla karşılaştırılır; tutmayan sonuç süre olarak gösterilmez.
- Sunucu referansı: her testin altında sunucudaki yerli derlemelerin referans süreleri de durur. Tarayıcı sayıları onlarla birebir kıyaslanmaz: farklı makine, farklı derleme hedefi.
- Oynaklık: tarayıcı başka sekmeler, güç tasarrufu ve ısınma nedeniyle süreleri birkaç yüzde oynatabilir; dizüstü bilgisayarlarda prize takılıyken ölçmek daha kararlı sonuç verir.
Ne indirilir?
- Ölçüm uygulaması: 336 KB (sayfayla birlikte).
- Ölçüm başlayınca seçtiğiniz diller: KabaLang 604 KB, C++ 1,2 MB, JavaScript 10 KB (dokuz testin toplamı, sıkıştırılmadan).
- Python (varsayılan olarak seçili): Pyodide 12,9 MB ve programlar 7 KB.
Sunucu sonuçları
Aynı testlerin sunucudaki yerli derlemelerle referans ölçümü, geçmişi ve kaynak kodları hız karşılaştırması sayfasında.