Performance Articles
-
mozilla developer preview 4 ready for testing
Note: this is a re-post of the entry in the Mozilla Project Development Weblog. There’s some juicy stuff in here for Web Developers that need testing. In particular, this is the first build with the CSS history changes. As part of our ongoing platform development work, we’re happy to announce the fourth pre-release of the […]
-
Oxidizing Source Maps with Rust and WebAssembly
A detailed look at how we replaced the most performance-sensitive portions of the
source-map
JavaScript Library’s source map parser with Rust code that is compiled to WebAssembly. The results: The WebAssembly is up to 5.89 times faster than the JavaScript implementation on realistic benchmarks operating on real world source maps! Additionally, performance is also more consistent: relative standard deviations decreased. We hope that, by sharing our experience, we inspire others rewrite performance-sensitive JavaScript in Rust via WebAssembly. -
A crash course in assembly
To understand how WebAssembly works, it helps to understand what assembly is and how compilers produce it. Third part in a series on WebAssembly and what makes it fast. We recommend starting from the beginning.
-
Compacting Garbage Collection in SpiderMonkey
Overview Compacting is a new feature of our garbage collector, released in Firefox 38, that allows us to reduce external fragmentation in the JavaScript heap. The aim is to use less memory in general and to be able to recover from more out-of-memory situations. So far, we have only implemented compacting for JavaScript objects, which […]
-
Safely reviving shared memory
At Mozilla, we want the web to be capable of running high-performance applications so that users and content authors can choose the safety, agency, and openness of the web platform. Shared-memory multi-threading is an essential low-level building block for high-performance applications. However, keeping users safe is paramount, which is why shared memory and high-resolution timers were effectively disabled at the start of 2018, in light of Spectre. Until now...
-
Performance Updates and Hosting Moves: MDN Changelog for October 2018
This month's changelog, from the hard-working engineering team that builds and maintains the MDN Web Docs site, covers performance improvements and experiments, infrastructure updates, as well as countless tweaks and fixes to make your MDN experience better and better.
-
Optimising SVG images
SVG is a vector image format based on XML. It has great advantages, most notably it is lightweight. Since SVG is a text format, it can be viewed and modified using a simple text editor, and applying GZIP compression produces excellent results. It’s critical for a website to provide assets that are as lightweight as […]
-
Detecting and generating CSS animations in JavaScript
When writing of the hypnotic spiral demo the issue appeared that I wanted to use CSS animation when possible but have a fallback to rotate an element. As I didn’t want to rely on CSS animation I also considered it pointless to write it by hand but instead create it with JavaScript when the browser […]
-
Why WebAssembly is Faster Than asm.js
Performance is tricky to measure, and has many aspects. Also, in a new technology there are always going to be not-yet-optimized cases. So not every single benchmark will be fast on WebAssembly today. This post describes why WebAssembly should be fast; where it isn’t yet, those are bugs we need to fix.
-
Creating and working with WebAssembly modules
WebAssembly is a way to run programming languages other than JavaScript on web pages. In the past when you wanted to run code in the browser to interact with the different parts of the web page, your only option was JavaScript. So when people talk about WebAssembly being fast, the apples to apples comparison is to JavaScript. Fourth in a series on WebAssembly.