Xcode 9 и Swift 4


#1

Кто-нибудь пробовал Xcode 9 и Swift 4 ? Пока сижу на Xcode 8.

Swift 4 - https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/index.html#//apple_ref/doc/uid/TP40014097-CH3-ID0

Обнаружил что в Swift 4 вернулись к определению String как collection. Поскольку у меня программа на 99 % это работа со String, то хочется услышать мнение если кто работал со String в Swift 4 и Xcode 9, как изменилась скорость при работе со String ? Почитал про substrings Swift 4 - интересно как это отразится на потреблении памяти?

PS. Год назад я как то заметил :wink: что могут признать уход от collection ошибкой :slight_smile: , похоже так и есть. Переходим с Swift2 на Swift3, и как теперь получить count для Range ?


#2

Похоже что никак, я пару тестев прогнал, результат одинаковый.


#3

Поставил Xcode 9 beta, перевел проект в Swift 4 конветрором и затем руками.

Сделал Build and Run проекта в Xcode 9 beta и Xcode 8 (Swift 3).

Запустил alignment двух последовательностей в моей программе. И тут мне стало не хорошо!

Для Swift 3 проекта alignment занял - 8 секунд -что есть замечательно !

Внимание !!! Для Swift 4 проекта alignment занял - 90 секунд !!!

У меня нет слов от такого УЛУЧШЕНИЯ Swift :frowning: :frowning: :sob:

Посмотрел код, вроде нет каких то неожиданных изменений при переходе на Swift 4.

И что теперь делать ???


#4

Дополнение.

В Xcode 9 beta - использование памяти по Debug Navigator - до запуска alignment 42 MB после выполнения alignment 46 MB
В Xcode 8 - до 43 MB после 119 MB

О чем это говорит ?


#5

На это сообщение поступили жалобы от участников сообщества, поэтому оно временно скрыто.


#6

Это всего лишь бета, советую подождать GM :slight_smile:

Попробуйте поменять версию Свифта:

Я думаю сейчас слишком рано думать о таком, это первая бета Xcode.


#7

Ok. Буду надеяться на лучшее.
Пока продолжу в Xcode 8 и Swift3.


#8

Бету лучше ставить только в ознакомительных целях.
Глюки, лаги и вылеты - на то она и БЕТА