Lobsters | 📄 原文链接 | 2026-10-14 收录

用 xxHash 替掉 SHA1,让虚幻编辑器启动快起来

来源:larstofus.com — 2026-10-11

📋 概述

Lars Thiessen 继续他的「优化要往被忽视的角落找」系列:他通常跳过名字里带 Shader 的函数,直到某次放大火焰图才发现着色器哈希调用了 SHA1——一个源自 NSA、早已被密码学攻破因而「不该再用」的算法,而这里哈希的只是着色器源码(含注释与版权声明),完全不需要密码学强度。他把 SHA1 换成引擎里已有的 xxHash,改动比预想的多,因为所有存储和传递哈希的地方都要同步更新,附带好处是哈希从 20 字节缩到 8 字节。用 Superluminal 对 Electric Dreams 示例工程各做 5 次开编辑器对照后,FSHA1::Update 里的 12.90 秒降到 FXxHash64Builder::Update 的 1.59 秒,快了八倍。提交的 PR 已被 Epic 接受,并在代码里把 xxHash 包进 FShaderHash,方便将来再换算法。

🔑 核心要点

💡 金句

一个很聪明的做法,我此前没想到,是把 xxHash 包进另一个结构体 FShaderHash。
← 返回 Lobsters 首页