0
我正在做一些关于Ubuntu 15.10 x64
的研究工作。我想研究是否有办法让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操作。没有太多的机会放慢速度。 –