Zig 使用 SIMD 加速子串搜索:性能提升 60%!

2025-08-11
Zig 使用 SIMD 加速子串搜索:性能提升 60%!

本文讲述了作者如何使用 SIMD 指令集在 Zig 语言中实现子串搜索,并将其速度提升了约 60%。作者采用了一种 SIMD 友好的算法,该算法通过提取目标子串的首尾字符,利用 SIMD 并行比较,有效减少了内存访问次数。基准测试表明,该方法在处理大型文本时,CPU 占用率降低了 80%,速度提升显著。虽然在小型文本中提升有限,但仍展现了 SIMD 技术的潜力。文章还讨论了该方法在字符选择和不同 SIMD 指令集 (AVX2, AVX-512) 下的性能差异,以及为什么不将其集成到 Zig 标准库中的原因。

阅读更多
开发 子串搜索

HTTP 服务器如何确定 Content-Length?

2024-10-07
HTTP 服务器如何确定 Content-Length?

文章解释了 HTTP 服务器如何确定 Content-Length。对于小响应,服务器会在发送前计算长度并设置 Content-Length 头。对于大响应,服务器会使用分块传输编码(Transfer-Encoding: chunked),将响应分成多个块发送,每个块都有长度前缀,避免一次性将所有内容加载到内存。文章还解释了 HTTP/1.1 中引入的分块传输编码和预告头,以及 HTTP/2 和 HTTP/3 如何用自身的流机制取代分块传输编码。

阅读更多
27
未分类 Content-Length