1作者: jgrahamc4 个月前
1作者: EfurDec4 个月前
我开发了一个零抖动排序 DLL(用 Rust 编写),针对 100 万个 u64 KV 对(u32+u32)的排序,始终保持在 20 毫秒以内,不受数据分布的影响。与 SkaSort 或其他自适应算法不同,我的实现完全与数据无关,并且对通常会将性能拖垮至 40-50 毫秒的“毒化”数据集免疫。 该方法受到 FPGA 的启发,专为 x86-64-v3 (AVX2/BMI2) 架构实现。它在我的 i9-13980HX 上达到了物理 L3 缓存带宽的极限 (~50GB/s)。虽然纯 FPGA 硬件可能达到 15 毫秒,但这很可能是单线程 CPU 实现的理论极限。可在任何现代台式机上运行。
1作者: gzm554 个月前
你好,我开发了 chlibc,这是一个 Linux 工具,用于将系统的解释器和 glibc 更改为你自定义的版本。 通常,要针对不同的 glibc 运行 ELF 文件,你会使用 LD_LIBRARY_PATH 和 patchelf,或者使用 chroot/docker。 chlibc 允许你动态地更改进程的动态链接器,无需打补丁和 root 权限。 主要特点: - 零磁盘修改:无需使用 patchelf --set-interpreter。 - 无需 root 权限:完全通过用户空间的 ptrace 工作。 - 多架构:原生支持 x86_64、AArch64 和 RISC-V。 - 轻量级:与 PRoot 不同,PRoot 会拦截每个系统调用来转换路径,而 chlibc 仅在初始的 execve() 阶段介入。一旦加载器被替换,它几乎没有运行时开销。 我很想听听你对这个工具的看法,谢谢!