Что дороже в Java? Сериализация или запись в файл? - PullRequest
1 голос
/ 01 января 2012

У меня есть список строк, которые нужно хранить локально (предположим, что список может содержать от 10 до 100 элементов).Я хочу знать, должен ли я записать списки в базу данных Flat или использовать сериализацию, чтобы сгладить объект, содержащий список?Что дороже (по процессору)?Какие условия делают одно дороже другого?

Спасибо !!

Ответы [ 3 ]

1 голос
/ 01 января 2012

Тем более что они являются строками, просто запишите их по одному в строке в файл.Просто, быстро и намного проще в тестировании.

0 голосов
/ 01 января 2012

У меня есть список строк, которые нужно хранить локально (предположим, что список может содержать от 10 до 100 элементов).

Предполагая, что общая длина строк мала(например, менее 10 КБ), время ЦП в пользовательском пространстве, используемое для сохранения, может составлять несколько миллисекунд с использованием сериализации или плоского файла.Другими словами, это будет настолько быстро, что пользователь не заметит разницу.

Вам следует рассмотреть другие причины выбора между двумя альтернативами (и другими):

  • Как просто написать код.

  • Сколько дополнительных зависимостей получает альтернатива.

  • Человекудобочитаемость / редактируемость сохраненного файла данных ... в случае, если вам нужно это сделать.

  • Насколько легко / сложно было бы изменить «схему» материала, сохраненного в файл... на тот случай, если вам нужно это сделать.

  • Можно ли обновить одну строку без перезаписи всего файла ... если это актуально.

  • Поддержка других вещей, таких как атомарное обновление, транзакции, сложные запросы и т. Д. ... если они актуальны.


И если, несмотря на то, чтоЯ сказал выше , вы все еще хотите знать, что будет быстрее (и насколько), а затем сравните его.Реальная производительность будет зависеть от факторов, которые вы не указали.

Вот несколько важных ссылок на то, как написать эталонный тест Java, чтобы он дал значимые результаты.

И вы можете поэкспериментировать, чтобы ответить на эту часть вашего вопроса:

Какие условия делают человека дороже, чемдругое?

(см. выше)

0 голосов
/ 01 января 2012

Я не уверен в расходах, но считаю, что представление объекта много раз содержит целую массу метаданных (и структуру), что может привести к созданию большого большого размера объекта, чем исходные данные. Пример для этого может быть, когда вы сохраняете структуру xml в объекте DOM - это занимает в 4 раза больше памяти, чем исходные данные.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...