【发布时间】:2012-07-21 13:12:06
【问题描述】:
我的 java 程序大部分时间都花在读取一些文件上,我想优化它,例如,通过使用并发、预取、memory mapped files 或其他方式。
不进行基准测试的优化是无稽之谈,所以我进行基准测试。然而,在基准测试期间,整个文件内容被缓存在 RAM 中,这与实际运行不同。因此,基准测试的运行时间要小得多,而且很可能与实际情况无关。
我需要以某种方式告诉操作系统 (Linux) 不要缓存文件内容,或者最好在每次基准测试运行之前清除缓存。或者可能会占用大部分可用 RAM (32 GB),因此只有一小部分文件内容适合。怎么做?
我使用caliper 进行基准测试,但在这种情况下,我认为没有必要(这绝不是微基准),我不确定这是一个好主意。
【问题讨论】:
-
Windows 的解决方案也会很有趣
标签: java caching benchmarking caliper disk-io