Подтвердить что ты не робот

Swift vs Objective-C: производительность приложения

Я занимаюсь некоторыми исследованиями в Swift, и это отличается от Objective-C. Из того, что я могу собрать, текущая версия Swift довольно быстрая, быстрее даже тогда Objective-C: см. Здесь.

Однако, поскольку большинство этих тестов выполняются с помощью алгоритмов сортировки и т.д., мне интересно, будет ли Swift на самом деле быстрее, чем Objective-C, когда он будет использоваться для разработки приложений iOS. Может ли кто-нибудь просветить меня на этом, предпочтительно из собственного опыта.

4b9b3361

Ответ 1

Существует отличная статья в блоге об улучшении производительности Swift, особенно после версии Swift 1.2.

Автор провел несколько тестов с различным кодом, похожим на код Objc типа Swift, только Swift и Objective-c. И результатом было то, что Swift 1.2 намного быстрее, чем раньше. Он проводил тесты с JSON, поэтому он немного практичнее, чем просто алгоритмы.

Помимо "реальной" производительности, мой личный опыт в том, что я развиваюсь намного быстрее в Swift. Мне никогда не нравились файлы .h и .m из Objective-c, потому что он остановил "поток программирования". Также я думаю, что сам синтаксис намного проще, чем в Objective-c [с этими скобками].

Поэтому я думаю, что если вы напишете новый проект из Scratch, Swift будет намного проще, быстрее и элегантнее. (Мое мнение)

Ответ 2

Компания Swift заявляет, что она быстрее, чем Objective-C, и, как вы сказали, она быстрее работает в таких алгоритмах сортировки, но для использования iOS developemnt простой пользователь не будет распознавать разницу между приложением, разработанным в Swift или Objective-C. Я разработал множество приложений в Objective-C, которые находятся в магазине Apple, а теперь несколько в Swift, и до сих пор пользователи не могут отличить друг от друга, если они намного быстрее, чем другие.

Swift вряд ли приведет к появлению приложений, которые работают намного быстрее, чем приложения, разработанные в Objective-C. Несмотря на то, что оба языка отличаются друг от друга, оба предназначены для тех же Cocoa и Cocoa сенсорных API, iOS и OS X a, оба являются статически типизированными языками, и оба используют один и тот же компилятор LLVM, поэтому они все-таки не отличаются друг от друга, Там будут различия в производительности, поскольку в то же время два языка не идентичны, но не ожидайте значительных различий.

Swift также разработан от Apple, чтобы обратиться к новым программистам, потому что он похож на такие языки, как Ruby и Python, чем Objective-C.

Ответ 3

Swift по сравнению с Objective-C имеет свои собственные преимущества, такие как: Swift обрабатывает строки более легко, быстрые кортежи предлагают составные переменные, а также, кодеры не должны тратить время на аннотирование переменных с информацией о типе и ошибками при создании риска; в большинстве случаев компилятор может вывести тип из значения, заданного переменной.

Ответ 4

Вы можете писать медленный код на любом языке, и 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, и я дал короткая беседа в октябре.

Ответ 5

Swift быстрее сравнивается с объективом c, на что претендует команда apple. Это, безусловно, так. Однако факт заключается в том, что вы должны планировать много вещей, чтобы писать отзывчивые приложения. Несколько указателей
1) Удалить неиспользуемые ресурсы
2) Оптимизация ресурсов для ex-изображений
3) Кэширование
4) Сжатие
5) Многоразовый код
6) Управление жизненным циклом жизни