Я провожу сравнение производительности, что лучше - сериализация данных или хранение их в БД. Приложение получает чертовски много данных (x GB), которые необходимо сохранять с минимальной скоростью 18mb/s (пока что)
Хранение в БД предлагает более простую функциональность в плане поиска и доступа к данным в более позднее время, снимков данных, миграции данных и т.д., но мои тесты на данный момент показывают огромную разницу во времени производительности.
Тест сохраняет 1000 объектов (размером около 7 сотен с небольшим кб каждый). Либо в соответствующие колонки в таблице, либо на диск, сохраняя их как общий List. (SQLite в итоге содержит немного больше данных)
Я не делал никаких настроек производительности SQLite, просто использую его из коробки с Fluent nHibernate и адаптером SQLite.Data (без транзакций), но на первый взгляд это огромная разница.
Конечно, я знаю, что прохождение через ORM mapper и DB для записи на диск дает накладные расходы по сравнению с сериализацией, но это было очень много.
Также необходимо учитывать необходимость сохранять данные сразу после их получения. Если произойдет сбой питания, мне нужны последние полученные данные.
Есть мысли?
----- Updates (as I continue to investigate solutions) ------