哪个更快,十六进制编码还是Base64编码?

7

我想发送或存储一个巨大的二进制文件,必须将其编码为文本。

hex编码和base64编码之间,哪种编码方法更快?

数据大小约为40 MB或更大,因此性能很重要。


听起来像是一个运行一些基准测试的机会... - abiessu
1
你为什么认为你需要编码呢?如果不编码,速度会更快。 - Boann
我想对它进行编码,因为服务器拒绝发送二进制文件或程序。所以我必须将其转换后再发送。 - Art and Artistic artandartisti
2
如果你有两匹马,并且想知道哪一匹更快,那么请比赛你的马。详细信息请参见Eric Lippert的“Which is faster?”(http://ericlippert.com/2012/12/17/performance-rant/)。 - marc_s
1个回答

20

编码本身所花费的时间并不是真正的问题。Base64 更复杂,但编码本身仍然不会带来大量开销。真正的问题在于传输数据所花费的时间,它取决于数据的编码大小。

  • 与其二进制形式相比,Base64 会将数据大小扩展三分之一。因此,您的40 MB文件将变成约53 MB。

  • 十六进制编码会使数据大小翻倍,因此您的40 MB文件将变成80 MB。

简而言之,Base64 胜出。


3
如果必须将数据存储为字符串,那么Ascii85是存储大小方面最有效的方法。具体信息请参考https://en.wikipedia.org/wiki/Ascii85。 - John Culviner
1
当使用加密并通过网络发送原始数据时,我需要能够读取二进制数据。简而言之,这种情况下十六进制更胜一筹。 - Alwyn Schoeman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接