一个 Rust 程序在将 AWS SDK 模型从 JSON 反序列化为 “Smithy Shape” 结构体时,最初消耗了 895MB 的内存。通过战略性地重构这些结构体并定制反序列化过程,内存使用量减少到 420MB,节省了 475MB。 关键优化在于认识到结构体内的许多可选字符串字段经常为空。Rust 的内存布局,特别是使用 `Option<String>` 时,在处理大量可选字段时效率低下。解决方案是将这些可选结构体移动到堆上,使用 `Option<Box<Struct>>`。这样,当嵌套结构体为空时,父结构体可以占用最小的空间(一个字),类似于 Java 或 Python 等语言的内存管理。 实现了自定义的反序列化器,以避免存储空结构体。虽然这会增加 CPU 开销,但由于减少了内存分配和垃圾回收压力,整体性能得到了改善。作者利用经过配置的 jemalloc 分配器来准确测量更改前后的内存使用量,证明了优化的有效性。这强调了理解 Rust 的内存模型以及利用分析工具进行性能调优的重要性。
## fast16:一种此前未记录的网络破坏框架
SentinelLABS 发现“fast16”,一种复杂的网络破坏框架,其历史可追溯至2005年,比Stuxnet早至少五年。该框架独特地针对高精度计算软件,微妙地改变内存中的代码以操纵结果,并可能破坏关键研究和工程。
fast16 使用一个服务可执行文件 (svcmgmt.exe) 作为载体,嵌入一个Lua虚拟机以实现模块化,以及一个内核级驱动程序 (fast16.sys) 以进行精确破坏。该驱动程序拦截并修改可执行代码,采用基于规则的系统注入恶意代码,特别是针对浮点计算。其传播机制允许在整个设施内广泛部署。
值得注意的是,“fast16”出现在ShadowBrokers泄露事件中,其中包含一个内部规避签名,指示操作员忽略其存在。分析表明,开发者具有较旧的Unix系统背景,并使用了不常见的源代码控制实践。
该框架能够微妙地破坏物理学和工程等专业领域中的计算,表明其战略意图是破坏科学进步或造成系统性故障。fast16代表了网络战的一个重要里程碑,展示了在公开承认之前很久就具备了先进的能力,并强调了长期休眠的工具可能重新浮出水面的潜力。