提高cat实用程序效率的实验

Audacious 音乐播放器的创建者、IRCv3 协议的发起者以及 Alpine Linux 安全团队的领导者 Ariadne Conill 对如何优化 cat 实用程序进行了研究,该实用程序将一个或多个文件输出到标准输出流。 为了提高 Linux 上 cat 的性能,提出了两种优化,基于使用 sendfile 和 splice 系统调用在内核级别直接在文件描述符之间复制数据,而无需上下文切换到用户空间。

基本实现使用导致上下文切换的传统读写调用,从 tmpfs 复制 4GB 文件时显示出 3.6 GB/s 的性能。 基于 sendfile 的选项将性能提高到 6.4 GB/s,基于 splice 的选项将性能提高到 11.6 GB/s,即结果比原始版本快了 3 倍以上。

来源: opennet.ru

添加评论