Я пытаюсь запустить тесты с небольшим кодом berkeley db и C++, просто для исследовательских целей. В настоящее время я тестирую следующий код. Я заполняю записи только увеличивающимися целыми числами (я пропустил такие вещи, как обработка ошибок для лучшей читабельности)
(db — это мой собственный класс berkeley 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 секунды). В официальном документе, опубликованном Беркли, говорится, что у них есть результаты до 90 700 действий ввода в секунду ... С моим бенчмаркингом у меня около 50 000 действий ввода в секунду.
Есть ли лучший способ сравнить Беркли? Есть ли у вас примеры кода для начала работы и тестирования berkeley?
Заранее спасибо.