sqlite3 性能测试 - 如何快速重置/清除缓存
Posted
技术标签:
【中文标题】sqlite3 性能测试 - 如何快速重置/清除缓存【英文标题】:sqlite3 performance testing - how to quickly reset/clear the cache 【发布时间】:2018-07-04 17:02:01 【问题描述】:我希望这是一个简单的问题。
在进行查询性能测试时,运行相同的连续查询总是会比第一次尝试更快地返回响应(通常快得多)。
将 sqlite3 '重置'回其默认状态的最简单/最快的方法是什么?
运行VACUUM
可能需要相当长的时间,而且显然不仅仅是“重置”一些事情。
谢谢,
【问题讨论】:
这个问题其实是关于OS文件缓存的。 好吧...如果您有 root 权限,您可以擦除操作系统的整个缓存,但这有点...笨手笨脚。 【参考方案1】:所以,似乎 sqlite3 没有能力自己做到这一点。您可以通过以 root 身份运行以下命令来刷新 linux 中的 pagecache/inode 来弥补这一点:
echo 3 > /proc/sys/vm/drop_caches
为了使其对性能测试有效,您需要在每次迭代之间运行此命令。该值不会改变(这是反直觉的),但每次将值写入文件时,都会激活刷新过程。
【讨论】:
以上是关于sqlite3 性能测试 - 如何快速重置/清除缓存的主要内容,如果未能解决你的问题,请参考以下文章