Который быстрее: Union или Concat?

Все вышеупомянутое и...

code_complete: завершенный параметр функции, фрагменты кода, и многое другое.

taglist.vim: браузер Исходного кода (поддерживает C/C++, Java, жемчуг, Python, tcl, sql, php, и т.д.)

15
задан yoozer8 10 August 2012 в 20:12
поделиться

2 ответа

Union удаляет дубликаты. Concat этого не делает.

Таким образом, они дают разные результаты, если источники содержат какие-либо общие элементы или имеют какие-либо внутренние дубликаты.

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

Однако, если есть много дубликатов и они вам не нужны, дополнительная обработка в Объединение для удаления дубликатов может быть компенсировано экономией вашего кода, который потребляет результаты.

51
ответ дан 30 November 2019 в 23:58
поделиться

Вам важна только скорость выполнения? Сколько времени у вас уходит на обработку элемента, когда вы его получаете?

Concat проще - ему не нужно выполнять какую-либо обработку или буферизовать уже возвращенные результаты. Тем не менее, это даст больше результатов, если на пересечении есть какие-либо элементы. Если вам потребуется много времени для обработки каждого результата, Concat может оказаться , по сути, медленнее.

10
ответ дан 30 November 2019 в 23:58
поделиться
Другие вопросы по тегам:

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