0

私はext4を使用してUbuntu12.04を使用しています。ややランダムなアクセスパターンで小さなサイズ(ほとんどが512バイト)の読み取りと書き込みを行うPythonプログラムを作成しました。ファイルがどんどん大きくなるにつれて、私はそれを見つけました。同じ数のI/Oを実行するのにますます時間がかかります。関係は線形です。つまり、O(n 2)が得られます。ここで、nはI/Oの累積数です。

ファイルサイズが大きくなるにつれて小さなI/Oが遅くなるという固有の理由があるのではないかと思います。

もう1つの観察:RAMディスクをマウントしてRAMディスクにファイルI / Oを実行したとき、このパフォーマンスの低下は観察されません。

4

2 に答える 2

0

IOの実行方法によっては、メモリを保存する前にメモリを呼び出しすぎている可能性があります。

于 2012-05-10T10:00:36.057 に答える
0

1024 バイトの大きなファイルから 512 バイトを読み取ると、ファイル全体がキャッシュされます。ファイルのサイズが大きくなるにつれて、ファイルのより小さな部分がキャッシュに残り、データがディスクからより頻繁に読み取られます。つまり、ファイルが大きくなるにつれて、より多くのキャッシュ ミスが発生します。多分これはあなたが経験していることです。

于 2012-05-10T13:26:24.913 に答える