【问题标题】:sqlite3 performance testing - how to quickly reset/clear the cachesqlite3 性能测试 - 如何快速重置/清除缓存
【发布时间】:2018-07-04 17:02:01
【问题描述】:

我希望这是一个简单的问题。

在进行查询性能测试时,运行相同的连续查询总是会比第一次尝试更快地返回响应(通常快得多)。

将 sqlite3 '重置'回其默认状态的最简单/最快的方法是什么?

运行VACUUM 可能需要相当长的时间,而且显然不仅仅是“重置”一些事情。

谢谢,

【问题讨论】:

  • 这个问题其实是关于OS文件缓存的。
  • 好吧...如果您有 root 权限,您可以擦除操作系统的整个缓存,但这有点...笨手笨脚。

标签: sqlite query-optimization


【解决方案1】:

所以,似乎 sqlite3 没有能力自己做到这一点。您可以通过以 root 身份运行以下命令来刷新 linux 中的 pagecache/inode 来弥补这一点:

echo 3 > /proc/sys/vm/drop_caches

为了使其对性能测试有效,您需要在每次迭代之间运行此命令。该值不会改变(这是反直觉的),但每次将值写入文件时,都会激活刷新过程。

【讨论】:

    猜你喜欢
    • 2010-10-03
    • 2015-08-12
    • 2021-04-06
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    • 2020-10-02
    • 1970-01-01
    • 2014-04-29
    相关资源
    最近更新 更多