Tag: disk io

如何在不缓存的情况下测量文件读取速度?

我的java程序花了大部分时间来阅读一些文件,我想优化它,例如,通过使用并发,预取, 内存映射文件等。 没有基准测试的优化是没有意义的,所以我进行了基准测试。 但是,在基准测试期间,整个文件内容都缓存在RAM中,与实际运行不同。 因此,基准测试的运行时间要小得多,而且很可能与现实无关。 我需要以某种方式告诉操作系统(Linux)不要缓存文件内容,或者更好地在每次基准测试运行之前清除缓存。 或者可能消耗大部分可用的RAM(32 GB),因此只有很小一部分文件内容适合。如何操作? 我正在使用卡尺进行基准测试,但在这种情况下我不认为它是必要的(它绝不是微基准测试),我不确定它是个好主意。