2014-09-13 3 views
-1

Что быстрее для фильтрации массива? Swift's .filter или с использованием NSPredicate? Я просто хотел узнать, что быстрее, поэтому я могу продолжить использовать более быстрый. (Пожалуйста, уточните, почему он быстрее, чем другой.)Какой из них быстрее? Swift's .filter или NSPredicate?

ответ

3

Учитывая, как вы спрашиваете, это не имеет значения. Выберите тот, который лучше читает. (И если вы действительно хотите узнать, укажите свой вариант использования.)

4

Что вы фильтруете? Сколько записей? Какие предикаты? Являются ли тесты динамическими или статическими? Все ли данные в памяти или вы фильтруете данные Core Data или что-то еще? Вы фильтруете массив или общую последовательность? Как генерируется эта последовательность (все ли она существует в памяти одновременно)? Является ли ваша Последовательность коллекцией, к которой можно получить доступ параллельно или это последовательная последовательность Sequence? Что вы будете делать с данными, которые впоследствии могут быть оптимизированы? Что предлагали ваши предварительные тесты? Есть ли определенная причина ограничить себя этими двумя выборами (существует несколько других подходов)? И учитывая, что характеристики производительности Swift, вероятно, резко изменится в течение следующего года, когда оптимизатор улучшится, насколько важно, чтобы этот ответ был действительным через три месяца?

Как предлагает @zoul, используйте тот, который более читабельен для вашей проблемы, а затем настройте, если есть проблема.

Если вы все еще не знаете, используйте filter. Он строго типизирован, что обычно делает его лучшим решением для написания в Swift.

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