Вы можете написать медленный код на любом языке, и Swift не является исключением. У меня не было времени полностью оценить Swift 1.2 Beta, но даже до того, как большинство кодов можно было сделать достаточно быстро, но было очень легко сделать это очень медленно. Доступ к не конечным методам экземпляра особенно был очень медленным, а сборки Debug были ужасно медленными (у меня есть несколько случаев, в 100 раз медленнее, чем выпуски). Небольшую работу по оптимизации наиболее глубоко вложенных петель обычно было достаточно, чтобы быстро получить ее где-то ближе к производительности C.
Большая часть кода, который вы пишете, не является критичным по производительности, если вы можете перемещать медленные операции с основной очереди пользовательского интерфейса. Больше времени будет потрачено на вызовы API, и на них не будет влиять язык, используемый для их вызова.Даже там, где производительность критически важна, количество кода, которое должно быть сильно оптимизировано, будет иметь тенденцию быть небольшим, и вы можете переключиться на более быстрый язык (например, C) только для этих частей.
При сравнении Objective-C также стоит учитывать то, что мы подразумеваем под Objective-C. Вы можете написать C-функции в коде Objective-C, и они приведут к коду так же быстро, как C. Я бы сказал, что они были C, и что для значимого обсуждения производительности Objective-C это должен быть код, основанный на отправке сообщений Objective-C и вероятно, NSArrays, а не сырые массивы C. Если это основа Swift (при оптимизации и использовании структур и конечных классов), выйдет достаточно хорошо. Однако, если вы сравниваете с кодом C, обычно будет так, что Swift будет медленнее на данный момент.
У меня есть несколько сообщений в блоге об оптимизации Swift на моем blog, и я дал short talk еще в октябре.
Этот ответ делает а не адрес производительности, вопрос здесь. Это важный вопрос. Являются ли эти языковые особенности и магия компилятора какой-либо ущерб производительности для существующего и, возможно, столь же жизнеспособного решения? Мне тоже нравятся эти функции, но они не стоят даже низкой производительности. – Morkrom
неконструктивный. ОП не спрашивал о языковых средствах. Кроме того, как уже упоминалось, не учитывается производительность. –