Skip to content

Commit f622de5

Browse files
authored
Revise WebAssembly response size and compression details
Updated captions and descriptions for response size figures, added new figures for compression methods, and clarified the comparison between WebAssembly and JavaScript deliverables.
1 parent fc2c5aa commit f622de5

File tree

1 file changed

+32
-11
lines changed

1 file changed

+32
-11
lines changed

src/content/en/2025/webassembly.md

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -145,36 +145,57 @@ Conversely, at the 90th percentile, sizes increase significantly to 381 KB on de
145145

146146
{{ figure_markup(
147147
image="raw-response-sizes.png",
148-
caption="Raw response sizes.",
148+
caption="Response sizes.",
149149
description="Bar chart showing the distribution of WebAssembly (Wasm) raw response sizes across desktop and mobile platforms, measured in kilobytes across various percentiles. At the lower and median percentiles, the file sizes are identical and extremely small, starting at just 2 KB at the 10th percentile and reaching 14 KB at the 50th percentile for both platforms. However, a significant divergence occurs at the 90th percentile, where desktop response sizes reach 381 KB compared to 316 KB on mobile.",
150150
chart_url="https://docs.google.com/spreadsheets/d/e/2PACX-1vSXX1UpspK3gNeMVyApXrSYk42_Wmeh9RVpGarOFbs9EVbuU8wDyQh72Mu9PckmNat2wRqfP4kVAOki/pubchart?oid=658325543&format=interactive",
151151
sql_file="module_sizes.sql",
152152
sheets_gid="241152503"
153153
)
154154
}}
155155

156+
The above charts shows size of response body size, It is often called as "raw response size" that measures only the raw, often decoded, data payload received. It represents the size of the resource itself. However as per the research and common practices for Wasm deliverables, Wasm modules are compressed and optimized with various tools like <a hreflang="en" href="https://github.com/google/brotli">Brotli</a> and also transfered over network to the client with compression methods like gzip, br, zstd along with Content-Encoding headers.
157+
156158
{{ figure_markup(
157-
image="uncompressed-response-sizes.png",
158-
caption="Uncompressed response sizes.",
159-
description="Bar chart showing the uncompressed response sizes for WebAssembly (Wasm) modules, showing a significant divergence between platforms at higher percentiles. While modules at the 10th, 25th, and 50th percentiles remain small and nearly identical across devices—ranging from 5 KB to 31 KB—the gap widens considerably for the largest files. At the 90th percentile, desktop modules reach 897 KB compared to 756 KB on mobile.",
160-
chart_url="https://docs.google.com/spreadsheets/d/e/2PACX-1vSXX1UpspK3gNeMVyApXrSYk42_Wmeh9RVpGarOFbs9EVbuU8wDyQh72Mu9PckmNat2wRqfP4kVAOki/pubchart?oid=1570587851&format=interactive",
161-
sql_file="module_sizes.sql",
159+
image="compression-methods-desktop-client.png",
160+
caption="Compression methods used for desktop clients",
161+
description="Pie chart shows compression methods br, gzip and zstd along with couple of records for aws_chunked, It shows Wasm are widely transfer with 'br' compressed method covers 78.1%, gzip compression method 17.9% and zstd compression method covers 3.9% for desktop clients",
162+
chart_url="https://docs.google.com/spreadsheets/d/e/2PACX-1vSXX1UpspK3gNeMVyApXrSYk42_Wmeh9RVpGarOFbs9EVbuU8wDyQh72Mu9PckmNat2wRqfP4kVAOki/pubchart?oid=1275607668&format=interactive",
163+
sql_file="compression_methods.sql",
164+
sheets_gid="241152503"
165+
)
166+
}}
167+
168+
{{ figure_markup(
169+
image="compression-methods-desktop-client.png",
170+
caption="Compression methods used for mobile clients",
171+
description="Pie chart shows compression methods br, gzip and zstd along with couple of records for aws_chunked, It shows Wasm are widely transfer with 'br' compressed method covers 80.1%, gzip compression method 17.9% and zstd compression method covers 3.9% for mobile clients",
172+
chart_url="https://docs.google.com/spreadsheets/d/e/2PACX-1vSXX1UpspK3gNeMVyApXrSYk42_Wmeh9RVpGarOFbs9EVbuU8wDyQh72Mu9PckmNat2wRqfP4kVAOki/pubchart?oid=1994486126&format=interactive",
173+
sql_file="compression_methods.sql",
162174
sheets_gid="241152503"
163175
)
164176
}}
165177

166-
When examining uncompressed sizes, we observe that while the median module remains lightweight at approximately 30 KB on both platforms, the largest binaries at the 90th percentile are significantly heavier on desktop (897 KB) than on mobile (756 KB).
178+
Interestingly, If we see [performance benchmarks](https://facebook.github.io/zstd/#benchmarks)" activities by various communities from past couple of years, the compression methods 'br' and 'zstd' usage awareness are increasing and it shows continuous evolution and adoption by developers and cdn providers.
179+
180+
{{ figure_markup(
181+
caption="Largest WebAssembly file (desktop).",
182+
content="233.6 MB",
183+
classes="big-number",
184+
sheets_gid="241152503",
185+
sql_file="module_sizes.sql"
186+
)
187+
}}
167188

168189
{{ figure_markup(
169-
caption="Largest WebAssembly file detected.",
170-
content="228 MB",
190+
caption="Largest WebAssembly file (mobile).",
191+
content="170.4 MB",
171192
classes="big-number",
172193
sheets_gid="241152503",
173194
sql_file="module_sizes.sql"
174195
)
175196
}}
176197

177-
Beyond these standard distributions, the dataset contains significant outliers. The largest single WebAssembly module identified measured 228 MB on desktop and 166 MB on mobile, indicating the deployment of large-scale client-side applications.
198+
Beyond these standard distributions, the dataset contains significant outliers. The largest single WebAssembly module identified measured 233.6 MB on desktop and 170.4 MB on mobile, indicating the deployment of large-scale client-side applications.
178199

179200
Interestingly If we think about JS deliverables are in MB size often but Wasm deliverables are in quit smaller size this is because JS is the human readable, high level source code, while bytecode is a low level, intermediate representation of the code that is machine agnostic.
180201

@@ -242,4 +263,4 @@ We find that Bulk Memory is the most widely adopted feature, appearing in 187,67
242263

243264
WebAssembly adoption has significantly increased over the last four years, rising from 0.04% in 2021 to 0.35% in 2025, though growth has stabilized in the last two years. Usage is most prevalent on high-ranking websites and decreases significantly among less popular pages. We find that WebAssembly is currently deployed for two distinct purposes: handling specific utility functions (such as encryption or checksums) and powering full standalone applications. Furthermore, our findings highlight the widespread adoption of Microsoft’s frameworks, indicating their significant role in driving the current WebAssembly ecosystem.
244265

245-
Considering the significant developments in Wasm specifications and increased interest from the community, we believe the adoption of WebAssembly will further increase in the future.
266+
Considering the significant developments in Wasm specifications and increased interest from the community, we believe the adoption of WebAssembly will further increase in the future.

0 commit comments

Comments
 (0)