Skip to content

搞英语 → 看世界

翻译英文优质信息和名人推特

Menu
  • 首页
  • 作者列表
  • 独立博客
  • 专业媒体
  • 名人推特
  • 邮件列表
  • 关于本站
Menu

浏览器处理 base64 数据的速度有多快?

Posted on 2025-11-29

Base64 是一种二进制到文本的编码方案,它将任意二进制数据(例如图像、文件或任何字节序列)转换为安全、可打印的 ASCII 字符串,该字符串使用 64 个字符的字母表(A–Z、a–z、0–9、+、/)。浏览器在 JavaScript 中使用 Base64,可以将二进制数据直接嵌入到代码或 HTML 中,也可以将二进制数据作为文本传输。

浏览器最近新增了便捷安全的函数来处理 Base64 编码的Uint8Array.toBase64()和Uint8Array.fromBase64()函数。虽然它们有多个参数,但本质上都是编码和解码函数。

 const b64 = Base64.toBase64 ( bytes ) ; //字符串 
  
const recovered = Base64.fromBase64 ( b64 ) ; // Uint8Array

编码时,它从输入中提取 24 位。这 24 位被分成四个 6 位段,每个 6 位值(范围从 0 到 63)映射到 Base64 字母表中的一个特定字符:前 26 个字符是大写字母 AZ,接下来的 26 个字符是小写字母 az,然后是数字 0 到 9,最后是加号 (+) 和斜杠 (/),分别对应第 62 个和第 63 个字符。当输入长度不是 3 字节的倍数时,使用等号 (=) 进行填充。

它们的速度能有多快?

假设每个 CPU 周期消耗 3 字节数据并生成 4 字节数据。在 4.5 GHz 的 CPU 频率下,Base64 编码速度可达 13.5 GB/s。反向解码时,性能预计会降低。编码时,任何输入都是有效的:任何二进制数据都可以。但是,解码时,我们必须处理错误并跳过空格。

我编写了一个浏览器内基准测试程序。您可以在您喜欢的浏览器中试用一下。

我决定在我的苹果 M4 处理器上测试一下,看看各种浏览器的速度如何。我使用 64 KiB 的数据块。速度是相对于二进制数据测量的。

浏览器 编码速度 解码速度
狩猎之旅 17 GB/s 9.4 GB/s
SigmaOS 17 GB/s 9.4 GB/s
铬合金 19 GB/s 4.6 GB/s
边缘 19 GB/s 4.6 GB/s
勇敢的 19 GB/s 4.6 GB/s
伺服电机 0.34 GB/s 0.40 GB/秒
火狐浏览器 0.34 GB/s 0.40 GB/秒

Safari 的编码速度似乎比 Chromium 内核的浏览器(Chrome、Edge、Brave)略慢,但解码速度却快了近一倍。Servo 和 Firefox 的性能也同样糟糕,但出乎意料的是,它们的解码速度却比编码速度快。我本可以尝试其他浏览器,但它们大多似乎都是基于 Chromium 或 WebKit 内核的。

作为参考,一台性能良好的笔记本电脑的硬盘读写速度可以超过 3 GB/s。一些高端笔记本电脑的硬盘速度甚至超过 5 GB/s。在理想情况下,你的 Wi-Fi 连接速度可能接近 5 GB/s。一些互联网服务提供商或许能提供类似的网速,但你的实际网速可能要慢好几倍。

大多数浏览器的加载速度比你想象的要快得多。它们比网络或磁盘的加载速度还要快。

原文: https://lemire.me/blog/2025/11/29/how-fast-can-browsers-process-base64-data/

本站文章系自动翻译,站长会周期检查,如果有不当内容,请点此留言,非常感谢。
  • Abhinav
  • Abigail Pain
  • Adam Fortuna
  • Alberto Gallego
  • Alex Wlchan
  • Anil Dash
  • Answer.AI
  • Arne Bahlo
  • Ben Carlson
  • Ben Kuhn
  • Bert Hubert
  • Big Technology
  • Bits about Money
  • Brandon Skerritt
  • Brian Krebs
  • ByteByteGo
  • Chip Huyen
  • Chips and Cheese
  • Christopher Butler
  • Colin Percival
  • Cool Infographics
  • Dan Sinker
  • David Walsh
  • Dmitry Dolzhenko
  • Dustin Curtis
  • eighty twenty
  • Elad Gil
  • Ellie Huxtable
  • Ethan Dalool
  • Ethan Marcotte
  • Exponential View
  • FAIL Blog
  • Founder Weekly
  • Geoffrey Huntley
  • Geoffrey Litt
  • Greg Mankiw
  • HeardThat Blog
  • Henrique Dias
  • Herman Martinus
  • Hypercritical
  • IEEE Spectrum
  • Investment Talk
  • Jaz
  • Jeff Geerling
  • Jonas Hietala
  • Josh Comeau
  • Lenny Rachitsky
  • Li Haoyi
  • Liz Danzico
  • Lou Plummer
  • Luke Wroblewski
  • Maggie Appleton
  • Matt Baer
  • Matt Stoller
  • Matthias Endler
  • Mert Bulan
  • Mind Matters
  • Mostly metrics
  • Naval Ravikant
  • News Letter
  • NextDraft
  • Non_Interactive
  • Not Boring
  • One Useful Thing
  • Phil Eaton
  • PostHog
  • Product Market Fit
  • Readwise
  • ReedyBear
  • Robert Heaton
  • Rohit Patel
  • Ruben Schade
  • Sage Economics
  • Sam Altman
  • Sam Rose
  • selfh.st
  • Shtetl-Optimized
  • Simon schreibt
  • Slashdot
  • Small Good Things
  • Steph Ango
  • Stephen Wolfram
  • Steve Blank
  • Taylor Troesh
  • Telegram Blog
  • The Macro Compass
  • The Pomp Letter
  • thesephist
  • Thinking Deep & Wide
  • Tim Kellogg
  • Understanding AI
  • Wes Kao
  • 英文媒体
  • 英文推特
  • 英文独立博客
©2025 搞英语 → 看世界 | Design: Newspaperly WordPress Theme