Который быстрее: Клонирование или использование Потоков?

В Java, который быстрее:

  • Клонирование Объекта, затем передача его нескольким слушателям, принимающим клонированный объект, не содержат ничего более сложного, чем вложенные массивы, примитивы и Строки
  • Используя Потоки для передачи данных через от одного объекта до другого?
1
задан Péter Török 2 June 2010 в 15:07
поделиться

2 ответа

Я полагаю, клонирование происходит быстрее, потому что:

Когда вы клонируете, вы создаете объект из другого, создавая его экземпляр и атрибуты. Когда вы используете потоки, вы сериализуете объект и десериализуете его (тогда как Java также должна создать экземпляр объекта). Поэтому, когда вы используете потоки, у вас есть накладные расходы на сериализацию объектов.

Конечно, реализация clone () не должна делать ничего необычного, увеличивающего время копирования объектов. Клонирование объекта с массивами, примитивами и строками не должно занимать так много времени.

1
ответ дан 3 September 2019 в 00:06
поделиться

Клонирование будет быстрее, если реализация clone () разумна.

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

Но сделать ваши объекты неизменными и больше не беспокоиться о клонировании экземпляров будет еще быстрее: -)

1
ответ дан 3 September 2019 в 00:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: