私はUbuntu 15.10 x64
についていくつかの研究をしています。 2つ以上のプロセスが同時にテキストファイルを読みとってお互いの読みを遅くする方法があれば、私は勉強したい。複数のプロセスで同時に同じファイルを読み込む方法は、読み込み速度が遅くなりますか?
たとえば、2つのプロセスP1
およびP2
。テキストファイル/etc/example.txt
。それは1KBのデータを持っています。
P1の擬似コード:
for (int i = 0; i < 1000000; i ++) {
str = read_file ('/etc/example.txt', 'r');
print(str);
}
P2の擬似コード:
for (int i = 0; i < 100; i ++) {
str = read_file ('/etc/example.txt', 'r');
print(str);
}
time = get_the_whole_run_time();
print(time/100);
条件1:
P1
が実行されています。 P2
はP1
と競合するために使用され、平均読み取り時間はTIME_1と計算されます。
条件2:
P1
が実行されていません。 P2
のみ実行し、平均読み取り時間はTIME_2と計算されます。
私の目標は、(これは研究目的のためである)TIME_1を作るためにTIME_2よりも有意に高くなっています。しかし、私の実験はそんなにうまくいかない。 TIME_1は、TIME_2とほぼ同じです。
結果に影響するファイルシステムキャッシュのようなものがあるかもしれないことは知っています。私はコマンドを使用した:echo 3 > /proc/sys/vm/drop_caches
キャッシュをクリアする。しかし、それは動作しません。
アイデア?ありがとう!
データファイルが** 1 KB **の可能性が高いです。**データファイルは完全にキャッシュされます。 – WhozCraig
おそらく1GBをお試しください。 1KBの読み取りは、アトミックなIO操作になります。それを減速させるチャンスはあまりありません。 –