JetStream 3, et værktøjssæt til benchmarking af webbrowserydelse, er blevet udgivet. Det tester ydeevnen af JavaScript- og WebAssembly-motorer, når de kører typiske beregningsintensive webapplikationer. For at opnå objektive og uafhængige resultater udvikles projektet i fællesskab af udviklere af konkurrerende browsermotorer fra Google, Apple og Mozilla. Koden er tilgængelig under en BSD-licens.
Den nye version tager højde for moderne tendenser og ændringer, der er sket på nettet siden udgivelsen af JetStream 2 i 2019, og opdaterer også tests, så de matcher driftsmønstrene for rigtige webapplikationer og afspejler reel ydeevne i stedet for syntetiske resultater, som browsermotorer er specifikt optimeret til.
I modsætning til Speedometer 3-benchmarken fokuserer JetStream 3 på at måle beregningsevner snarere end grænsefladegengivelse og DOM-manipulationshastigheder. JetStream 3 afspejler bedre ydeevnen af browserspil, fysiksimulatorer, kernefunktionalitet i frameworks, kryptografiske værktøjer og komplekse algoritmer.
WebAssembly (Wasm) testfunktioner er blevet betydeligt udvidet, herunder evaluering af avancerede WebAssembly-funktioner såsom håndtering af undtagelser, brugen af vektor-SIMD-instruktioner og WasmGC-udvidelsen til udførelse af projekter i garbage-collected-sprog. Ydelsestests er blevet tilføjet til WebAssembly-applikationer bygget ved hjælp af J2CL-, Dart2wasm-, Kotlin/Wasm-, Rust- og .NET-værktøjssæt og genereret fra Java-, Dart-, Kotlin-, Rust- og C#-kode.
Nye arbejdsbelastninger, der bruges i WebAssembly-testning, inkluderer beregning af argon2-hashes, kørsel af en maskinlæringsmodel ved hjælp af SIMD-instruktioner til optimering, generering af brugergrænseflader i Dart og Kotlin, kørsel af SQLite3 og kørsel af interpretatoren og runtime .NET kompileret i WebAssembly.
Tilføjet 15 nye JavaScript-tests, inklusive Babylon.js 3D-motoren, ed25519 elliptiske kurveoperationer, MobX-biblioteket, syntaksfremhævning med prismjs, adskillige proxy-implementeringer, raytracing, filsystemoperationer, Three.js 3D-partikeladfærdssimulatoren, Typescript 5.9-kompilering, strengvalidering med validator.js og sidegenerering med React.
For at forhindre CPU-frekvens og I/O-belastninger i at påvirke resultaterne mellem tests, forudindlæser JetStream alle ressourcer, før testene køres i browseren. For at reducere maksimalt hukommelsesforbrug og sikre caching gemmes ressourcerne som URL-kodede blobs. JetStream kan bruges til at teste ikke kun browsere, men også enkeltstående motorer, såsom d8.
Kilde: opennet.ru
