RT 将近 3 倍的性能提升( 0.7s vs 2.0s )
截止发帖已经知道答案了 Py 不讲武德 调用了 openssl 带了 SIMD 加速
很好奇为啥 go 这么慢 还想着把我的小工具用 go 重写一遍 现在想法没这么迫切了(笑死
另外请教下 go 里怎么同时算 hash 会快一点(同一个超大文件的 md5 、sha1 、sha256 等)
测试原始信息
测试平台 i7 1165G7
缓冲大小均为 4*1024*1024 即 4MiB
其中 py 跑在 wsl1 ( Ubuntu22.04 )里
理论上会比跑在 win 里的 go 更慢(结果快了三倍 笑死
Python 3.10.4 (main, Jun 29 2022, 12:14:53) [GCC 11.2.0] on linux
go version go1.19.1 windows/amd64
openssl 信息
version: 3.0.2
built on: Mon Jul 4 11:20:23 2022 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-Q8dQt3/openssl-3.0.2=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
CPUINFO: OPENSSL_ia32cap=0xfedaf387ffebffff:0x405fc6f3bfa7ab
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
sha256 131816.90k 378560.56k 953040.44k 1468024.83k 1816342.93k 1818028.71k
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.