【发布时间】:2013-06-29 03:26:39
【问题描述】:
我正在尝试为 bdb 文件设置以千兆字节为单位的缓存大小。我正在为 bdb 使用 python 接口。我看到 bdb 的底层 'C' api 有这个选项。
int DB->set_cachesize(DB *db, u_int32_t gbytes, u_int32_t bytes, int ncache);
但我只能将一个 cachesize 参数传递给 btopen 函数,该函数被解释为以字节为单位的 cache_size。这将最大 cache_size 限制为 2GB。我希望能够将缓存大小设置为至少 4gb。
任何能够设置/增加缓存大小的帮助将不胜感激,在此先感谢!
下面是我用来设置cache_size的python函数。
cache_size = (2*1024*1024*1024) - 1
db = bsddb.btopen(self._bdbFileName, cachesize=cache_size, flag='n')
【问题讨论】:
-
如果您运行的操作系统有自己的缓冲区缓存,则可能不需要这样做。使用较小的缓存大小评估应用程序的性能,例如 1 GiB 与 2 GiB。如果您的操作系统已经在缓存数据库文件,您可能会发现让操作系统执行此操作比将内存专用于 BDB 时您的应用程序性能更好。
标签: python performance caching python-2.7 berkeley-db