NSRange или Range‹String.Index› - что быстрее для алгоритма, вычисляющего идентичность между двумя строками в swift3?

Если у нас есть два варианта одного и того же алгоритма (например, вычисление идентичности между двумя строками), работающего с NSRange (где строка будет преобразована в NSString) или Range<String.Index>, какой вариант алгоритма будет работать быстрее в swift3?

Обновить

Итак, я протестировал 4 варианта своего кода на игровой площадке, используя

let date_start = NSDate()
//code
print("\(-date_start.timeIntervalSinceNow)")

20,3485659956932 сек Swift 2.2 для кода с использованием Range<String.Index>

31.3328449726105 сек Swift 2.2 для кода с использованием NSRange

12.3670780062675 сек Swift 3 для кода с использованием Range<String.Index>

15,9888380169868 сек Swift 3 для кода с использованием NSRange

Swift3 имеет улучшенную производительность по сравнению со Swift2.2 — почти в два раза. Range<String.Index> немного лучше, чем NSRange


person VYT    schedule 13.07.2016    source источник
comment
@Eric D Может быть, кто-нибудь может дать объяснение, основанное на природе NSRange и Range‹String.Index› в swift3   -  person VYT    schedule 13.07.2016
comment
@VYT: как правило, Swift быстрый (серверная часть C++), и вам не следует беспокоиться о производительности, пока профилировщик не скажет вам об этом. В случае, если вы действительно заинтересованы, лучшим ответом будет самостоятельное профилирование/тестирование двух методов с использованием некоторых сложных вычислительных тестов.   -  person dfrib    schedule 13.07.2016
comment
Здесь stackoverflow.com/questions/26990394/ — это пример, когда работа с представлением UTF-16 (а это, по сути, то, что использует NSString) оказалась намного быстрее.   -  person Martin R    schedule 13.07.2016
comment
@VYT хорошее дополнение к тестовым случаям, но все тесты производительности должны выполняться в реальном проекте, а не на игровой площадке, чтобы учесть возможную хитрость компилятора (некоторый код платформы может быть ужасно медленным, тогда как в реальном проекте он работает быстро) .   -  person dfrib    schedule 14.07.2016