如何限制 Berkeley DB 的缓冲区?
How to limit Berkeley DB's buffer?
我需要限制 Berkeley 缓冲区的最大大小。我试过使用下面的代码,但缓冲区一直在增长。
DB_ENV *db_env;
u_int32_t env_flags;
char *DBNOMENV = "";
db_env_create(&db_env, 0);
db_env->set_cache_max(db_env, 0.1, 0);
env_flags = DB_CREATE | DB_INIT_MPOOL;
db_env->open(db_env, DBNOMENV, env_flags, 0);
DB *BDB_database;
db_create(&BDB_database, db_env, 0);
你想要DB_ENV->set_cachesize
:set_cachesize, from the Oracle docs。
set_cache_max
的目的是什么,它似乎只是限制您可以通过其他函数调用指定的数量?你懂我。这里可能有些细微差别,但实际上,set_cache_max
只是为了增加混乱。
请注意,这两个函数都只接受用于调整大小的整数参数。你需要 set_cachesize(db_env, 0, 100*1024*1024, 1);
来做你想做的事情 0.1
。
“缓存数量”应为 1。
我需要限制 Berkeley 缓冲区的最大大小。我试过使用下面的代码,但缓冲区一直在增长。
DB_ENV *db_env;
u_int32_t env_flags;
char *DBNOMENV = "";
db_env_create(&db_env, 0);
db_env->set_cache_max(db_env, 0.1, 0);
env_flags = DB_CREATE | DB_INIT_MPOOL;
db_env->open(db_env, DBNOMENV, env_flags, 0);
DB *BDB_database;
db_create(&BDB_database, db_env, 0);
你想要DB_ENV->set_cachesize
:set_cachesize, from the Oracle docs。
set_cache_max
的目的是什么,它似乎只是限制您可以通过其他函数调用指定的数量?你懂我。这里可能有些细微差别,但实际上,set_cache_max
只是为了增加混乱。
请注意,这两个函数都只接受用于调整大小的整数参数。你需要 set_cachesize(db_env, 0, 100*1024*1024, 1);
来做你想做的事情 0.1
。
“缓存数量”应为 1。