我正在Ubuntu 15.10 x64
做一些研究工作。我想研究是否有办法让两个或多个进程同时阅读文本文件会减慢彼此的阅读速度。
例如,两个进程P1
和P2
。文本文件/etc/example.txt
。它有1KB的数据。
P1&#39的伪代码:
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
用于&#34;竞赛&#34;使用P1
并计算平均阅读时间 TIME_1 。
条件2:
P1
不正在投放。只运行P2
并计算平均阅读时间 TIME_2 。
我的目标是使 TIME_1 显着高于 TIME_2 (这是出于研究目的)。但是我的实验并没有那么成功。 TIME_1 与 TIME_2 几乎相同。
我知道文件系统缓存可能会影响结果。我使用命令echo 3 > /proc/sys/vm/drop_caches
来清除缓存。但它没有用。
有什么想法吗?谢谢!
答案 0 :(得分:0)
使用大文件进行试验。
请注意,如果P1和P2同时运行,平均时间可能小于单个进程;因为其中一个进程可能会受益于另一个刚刚建立的新缓存,因此无需等待物理I / O。你的实验很难建立,因为它中有许多变量和许多具有非正交效应的系统内部机制;可能会出现令人惊讶的结果。