Я пытаюсь запустить тесты с небольшим кодом Berkeley DB и C ++, просто для исследовательских целей.В настоящее время я тестирую со следующим кодом.Я заполняю записи только увеличивающимися целыми числами (я пропустил такие вещи, как обработка ошибок для лучшей читаемости)
(db - мой собственный класс Беркли БД)
// Open the database
db.open( NULL, db_file_name.c_str(), NULL, DB_BTREE, open_flags, 0 );
int key_content = 4000;
int data_content = 4000;
DWORD start = ::GetTickCount(); // start counter
while( i <= p_count )
{
/*sprintf_s( rec_buf, "my_record_%d", i );
std::string description = rec_buf;*/
Dbt key( &key_content, sizeof(int) );
Dbt data( &data_content, sizeof(int) );
db.put( NULL, &key, &data, DB_NOOVERWRITE );
}
DWORD end = ::GetTickCount(); // stop counter
DWORD duration = end - start;
std::cout << "Duration for " << p_count << " records: " << duration << " ms" << std::endl;
Так что мой вопросэто эффективный способ сравнительного анализа, потому что мое время на 100 000 пут-действий составляет около 1900 мс (~ 2 скс).В официальном документе, опубликованном Berkeley, говорится, что у них были результаты до 90,700 пут-действий в секунду ... Благодаря моему бенчмаркингу у меня примерно 50,000 пут-действий в секунду.
Есть ли лучший способ для сравненияBerkeley?У вас есть примеры кода для начала работы и тестирования Беркли?
Заранее спасибо.