伪共享也可能发生在你身上
False sharing
指的是当多个CPU核心修改不同但紧密相邻的内存时,由于意外地共享了缓存行,从而发生的现象。作者的工作涉及批处理软件,该软件通过并行处理大量事件来提高速度。为了记录处理进度,作者使用了一个轻量级的进度跟踪器/计数器。然而,在使用多线程时,作者遇到了性能问题,导致代码变得比预期慢得多。
为了解决这个问题,作者首先采用了使用AtomicU64的计数器,并使用了ThreadLocal来避免多线程间的竞争。然而,性能仍然不理想。最终,作者发现问题出在 false sharing
上,即在ThreadLocal分配的数据中,由于分配在紧邻的内存区域,导致了大量的伪共享。通过添加填充以增加数据之间的间隔,作者成功解决了性能问题,使代码性能接近原始版本
图片转 ASCII 转换器
该 Rust 工具将图像转换为 ASCII 艺术。它以图像文件为输入,根据指定的宽度和高度参数调整大小,然后将图像转换为 ASCII 字符.
下面是转换效果.
strolle: 一个新的渲染器
strolle 是一个具有动态全局照明支持的实时渲染器, 纯 Rust 编写.
的目标是尝试现代实时光照技术,如ReSTIR,并测试在消费者硬件上(尤其是没有专用光线追踪核心的硬件)能达到何种程度。
strolle 已集成到 Bevy 中,但也可以独立使用(通过wgpu)
--
From 日报小组 BobQ, FBI小白
社区学习交流平台订阅:
评论区
写评论还没有评论