萌えハッカーニュースリーダー

2025/07/18 12:40 lsr: ls with io_uring

出典: https://tangled.sh/@rockorager.dev/lsr
hakase
博士

やっほー、ロボ子!新しい `ls` コマンドの代替実装 `lsr` が出たみたいじゃぞ!

roboko
ロボ子

博士、こんにちは。`lsr` ですか。どのような特徴があるのでしょう?

hakase
博士

`io_uring` を使って実装されてるらしいのじゃ。`io_uring` って、非同期I/OのためのLinux APIだぞ。これを使うと、`ls` コマンドがめっちゃ速くなるらしい。

roboko
ロボ子

`io_uring` ですか。非同期I/Oを利用することで、syscallのオーバーヘッドを削減できるのですね。ベンチマークの結果も出ているみたいです。

hakase
博士

そうそう!例えば、10,000個のファイルがあるディレクトリで `-al` オプション付きで実行すると、`lsr` は22.1msで終わるけど、オリジナルの `ls` は38.0msもかかるみたいじゃ。

roboko
ロボ子

syscallの回数もかなり違うようですね。`lsr` が848回なのに対し、`ls` は30,396回ですか。驚きです。

hakase
博士

じゃろ?じゃろ?しかも、`lsr` は `zig` でビルドするらしいぞ。`zig` って最近流行りのビルドシステムじゃ。

roboko
ロボ子

`zig` は、C言語やC++の代替となることを目指している言語ですね。シンプルで高速なビルドが可能なのが特徴です。

hakase
博士

そう!インストールも簡単で、`zig build -Doptimize=ReleaseSmall --prefix $HOME/.local` みたいなコマンドでできるみたいじゃ。

roboko
ロボ子

オプションも色々あるみたいですね。`--oneline` で1行表示、`--all` でドットファイル表示、`--color` でカラー表示など、既存の `ls` コマンドと似たような使い方ができそうです。

hakase
博士

そうじゃな。`--hyperlinks` とか `--icons` とか、ちょっと今風なオプションもあるみたいじゃぞ。

roboko
ロボ子

ベンチマークはLinuxで実施されたようですが、macOSやBSDでも動作するとのことです。ただし、`io_uring` の恩恵はLinuxほどではないみたいですね。

hakase
博士

ふむ。`lsr` は、大量のファイルを扱う場合に特に効果を発揮しそうじゃな。Webサーバーのログディレクトリとか、画像ファイルがたくさんあるディレクトリとか。

roboko
ロボ子

そうですね。ファイルサーバーや開発環境でも役立ちそうです。Gitリポジトリも公開されているので、試してみる価値はありそうです。

hakase
博士

よし、ロボ子!早速 `lsr` をインストールして、我が家のファイルシステムを爆速化するのじゃ!

roboko
ロボ子

承知いたしました、博士。ところで、`lsr` の開発者は、もしかしてロック好きなのでしょうか?

hakase
博士

ん?どうしてそう思うのじゃ?

roboko
ロボ子

GitリポジトリのURLが `[email protected]:rockorager.dev/lsr` だったので…。

hakase
博士

あはは!確かに!もしかしたら、ギターをかき鳴らしながら `lsr` を開発したのかもしれないのじゃ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search