2016-08-21 5 views
1

Какой из этих способов лучше (быстрее, меньше памяти)?Сохранить файл свойств МОСТ ЭФФЕКТИВНО

  1. Сохранить тысячи xyz.properties в каждом файле - около 30 ключей/значений
  2. Один .properties файл со всеми данными в нем - около 30000 ключей/значений
+1

Возможно, база данных здесь подходит лучше? – Seelenvirtuose

+1

Если файл заблокирован во время чтения/записи, а приложение многопоточно, вы столкнетесь с проблемами производительности. Разумеется, база данных лучше подходит. – khargoosh

ответ

1

Я думаю, что есть два аспекта:

  1. Как Гюнтер правильно указал, имея дело с файлами поставляется с накладных. Вам нужны «дескрипторы файлов»; и возможные другие структуры данных, которые обрабатывают файлы; так что может быть много разных уровней, где один файл размером лучше, чем наличие большого количества небольших файлов.
  2. Но есть также «ремонтопригодность». Значение: с точки зрения разработчиков, дело с файлом свойств, содержащим ключ/значение 30 К, - это то, что вы действительно не хотите вставлять. Если все находится в одном файле, вам необходимо постоянно обновлять (и развертывать) один огромный файл. Одно изменение; и весь файл должен выйти. Будут ли у вас механизмы, позволяющие перезагружать свойства «run-time»? или это означает, что ваше приложение должно быть закрыто? И как часто случается, что у вас есть дубликаты в этом большом файле; или что еще хуже: вы положили значение для свойства A на строку 5082, а затем кто-то не обращает внимания, а переопределяет свойство A on line 29732. Есть много вещей, которые могут пойти не так, просто из-за наличия всего этого материала в одном файле; не может быть переварен любым человеком! И будьте уверены: отладить что-то подобное будет hard.

Я только что дал вам несколько вопросов, чтобы подумать; поэтому вам может потребоваться отступить, чтобы предоставить больше требований с вашего конца.

В любом случае; вы можете захотеть изучить решение, в котором разработчики имеют дело со многими небольшими файлами свойств (вы знаете, например, один файл за функциональность). И затем вы используете оснастку , чтобы построить один большой файл, используемый в производственной среде.

И наконец: если вашему приложению действительно нужны свойства 30K; то вам следует больше беспокоиться о качестве вашего продукта. На мой взгляд, это не дизайн «запаха»; это похоже на фетидность дизайна. Значение: для разумного применения не должно функционировать свойства 30K.

1

Открытие и закрытие 1000s из файлов основные накладные расходы с операционной системой, так что вы, вероятно, лучше всего с одним большим файлом.