Апублікаваны інструментар для адзнакі прадукцыйнасці web-браўзэраў JetStream 3, нацэлены на тэставанне прадукцыйнасці рухавічкоў JavaScript і WebAssembly пры выкананні тыпавых web-прыкладанняў, якія здзяйсняюць інтэнсіўныя вылічэнні. Для дасягнення аб'ектыўных і незалежных вынікаў праект развіваецца сумесна распрацоўшчыкамі канкуруючых браузерных рухавічкоў з Google, Apple і Mozilla. Код даступны пад ліцэнзіяй BSD.
У новай версіі ўлічаны сучасныя тэндэнцыі і змены, якія адбыліся ў Web з моманту рэлізу JetStream 2 у 2019 годзе, а таксама актуалізаваны тэсты для адпаведнасці шаблонам працы рэальных web-прыкладанняў і адлюстравання рэальнай прадукцыйнасці, а не сінтэтычных вынікаў пад якія кропкава аптымізаваны.
У адрозненне ад тэставага набору Speedometer 3, у JetStream 3 упор робіцца на вымярэнне вылічальных магчымасцяў, а не хуткасці адмалёўкі інтэрфейсу і маніпуляцый з DOM. JetStream 3 лепш адлюстроўвае прадукцыйнасць браузерных гульняў, сімулятараў фізічных працэсаў, базавай функцыянальнасці фрэймворкаў, крыптаграфічных сродкаў і складаных алгарытмаў.
Значна пашыраны магчымасці па тэсціраванню WebAssembly (Wasm), рэалізавана ацэнка такіх пашыраных магчымасцей WebAssembly, як апрацоўка выключэнняў, прымяненне вектарных SIMD-інструкцый і задзейнічанне пашырэння WasmGC для выканання праектаў на мовах са зборшчыкам смецця. Дададзеныя тэсты для праверкі прадукцыйнасці WebAssembly-прыкладанняў, сабраных з выкарыстаннем інструментарыяў J2CL, Dart2wasm, Kotlin/Wasm, Rust і .NET, і згенераваных з кода на Java, Dart, Kotlin, Rust і C#.
З выкарыстоўваных пры тэставанні WebAssembly новых выглядаў нагрузкі адзначаецца вылічэнне хэшаў argon2, выкананне мадэлі машыннага навучання з выкарыстаннем для аптымізацыі інструкцый SIMD, генерацыя інтэрфейсаў карыстача на мовах Dart і Kotlin, выкананне SQLite3, запуск інтэрпрэтатара і runtime. NET, сабраных у WebAssemb.
Дададзена 15 новых тэстаў JavaScript, сярод якіх 3D-рухавічок Babylon.js, аперацыі з эліптычнымі крывымі ed25519, бібліятэка MobX, падсвятленне сінтаксісу пры дапамозе prismjs, некалькі рэалізацый проксі, трасіроўка прамянёў, аперацыі з файлавай сістэмай, 3D-сімулятар паводзінаў. праверка радкоў у validator.js і генерацыя старонак праз React.
Для выключэння ўплыву на вынікі зніжэння частаты CPU паміж тэстамі і ўводу/высновы ў JetStream рэалізаваная папераджальная загрузка ўсіх рэсурсаў да запуску тэстаў у браўзэры. Для зніжэння пікавага спажывання памяці і забеспячэнні кэшавання рэсурсы захоўваюцца ў форме закадаваных у URL блобаў. Маецца магчымасць выкарыстання JetStream для тэставання не толькі браўзэраў, але і адасобленых рухавічкоў, якія пастаўляюцца асобна, такіх як d8.
Крыніца: opennet.ru
