Я в процессе тестирования ESENT (Extensible Storage Engine) от Microsoft для своей компании. Тем не менее, у меня есть странные результаты.Производительность ESENT Vista против XP
По сравнению с аналогичными технологиями (SqLite), производительность была очень слабой при чтении данных.
В моем тесте производительности я читал более или менее случайным образом все данные в базе данных. Я не читаю одни и те же данные дважды, поэтому я думаю, что кеш не может мне помочь. Я запускаю тест много раз, чтобы получить скорость, когда данные «горячие». Я использую индекс для идентификатора типа long. Я использую следующие функции: JetSetCurrentIndex, JetMakeKey, JetSeek и JetRetrieveColumn для чтения.
В Windows Vista я активировал параметр JET_paramEnableFileCache, и он совершил чудеса и был даже быстрее, чем SqLite.
Однако, поскольку этот параметр доступен в Windows Vista или более поздней версии, производительность в Windows XP ничем не сопоставима с SQlite (например, 15 раз медленнее). Он читает на диске каждый раз. При использовании Sqlite в Windows XP все прочитанные тесты (кроме первого) не читаются на диске.
Я пропустил еще один параметр или что-то, что могло бы изменить ситуацию?
Большое спасибо!
Спасибо за соответствующий комментарий. На самом деле, я понял, что ничто не мешало мне использовать файл esent.dll, исходящий из Vista в Windows XP или 2000. Таким образом, мне не нужно кодировать по-разному в зависимости от ОС. – spaceboy