2015-05-08 5 views
0

Моя программа на С ++ должна читать информацию о 256 изображениях всего один раз. Информация проста: путь и некоторые поплавки на изображение.Базы данных против файлов (производительность)

Мне не нужен какой-либо одновременный доступ. Кроме того, я не забочусь о написании, удалении или обновлении информации, и мне не нужно делать какие-либо сложные запросы. Это мой трубопровод:

  1. Прочитать информацию об одном изображении.
  2. Сохраните эту информацию об объекте.
  3. Сделайте некоторые расчеты с информацией.
  4. Удалить объект.
  5. Следующее изображение.

Я могу использовать 256 файлов (каждое изображение имеет одинаковую информацию), 1 файл со всей информацией или базы данных PostgreSQL. Что будет быстрее?

+0

Я считаю, что файлы проще и быстрее в вашем случае, глядя на величину программы. – GingerJack

ответ

0

Ваш вопрос «который будет быстрее» сложно, так как производительность зависит от множества разных факторов, включая ОС, будь то база данных или файловая система на тех же машинах, что и ваше приложение, размер изображений и т. Д. Я бы предположил, что вы можете найти некоторые комбинации, которые сделают любой из ваших опций быстрее, если вы попытаетесь достаточно усердно.

Сказав, что если все работает на одной машине, то основанный на файлах подход будет казаться интуитивно более быстрым, чем база данных, только потому, что база данных в целом обеспечивает большую функциональность и, следовательно, делает больше работы (а не просто служит запросы, но и в фоновом режиме), поэтому нужно использовать больше вычислительной мощности.

Аналогично, кажется интуитивным, что один файл будет более эффективным, чем несколько файлов, поскольку он сохраняет операции открытия (и закрытия, если необходимо), связанные с несколькими файлами. Но, опять же, дать абсолютный ответ сложно, поскольку открытие и закрытие нескольких файлов может быть распространенным прецедентом, который оптимизировали некоторые ОС, что делает его таким же быстрым (или даже быстрее), чем просто одним файлом.

Если производительность очень важна для вашего решения, трудно избежать сравнительного тестирования с целевыми системами развертывания.

Смежные вопросы