The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Исследование проблем с производительностью JavaScript на мобильных устройствах

15.07.2013 12:08

Дрю Кроуфорд (Drew Crawford), специализирующийся на разработке мобильных приложений, опубликовал подробный анализ проблем с производительностью мобильных web-приложений, мешающих им конкурировать с нативными программами. В статье сделаны неутешительные выводы: в силу особенностей динамического языка и методов работы с памятью, JavaScript-приложения существенно отстают по производительности от нативных программ и в ближайшем будущем вряд ли ситуация заметно изменится, по крайней мере без внесения изменений в язык и API. Наиболее перспективным в этом плане выглядит Asm.js, низкоуровневое подмножество языка JavaScript со строгой типизацией.

В текущем виде JavaScript слишком медленный для разработки мобильных приложений. Отставание по производительности от C/C++ оценивается примерно в 50 раз, а от Java/Ruby/Python/C# в 10 раз, если размер программы укладывается в 35 Мб, при дальнейшем увеличении размера приложения производительность деградирует экспоненциально. Наиболее жизнеспособным вариантом для продвижения JavaScript для разработки мобильных приложений называется доведение производительности мобильных устройств до уровня настольных систем. Сам язык, без кардинальных изменений, не позволяет приблизиться к производительности нативных программ. Проблемы также наблюдаются в реализации системы сборки мусора, которая не рассчитана на работу в окружениях с ограниченным ресурсом памяти.

  1. Главная ссылка к новости (http://sealedabstract.com/rant...)
  2. OpenNews: Релиз Firefox 22 с поддержкой Asm.js
  3. OpenNews: Представлен Portable Native Client для запуска платформонезависимых C/C++ программ в браузере
  4. OpenNews: В Firefox 22 появится Asm.js, низкоуровневое высокопроизводительное подмножество JavaScript
  5. OpenNews: Новые версии языков Dart и TypeScript, претендующих на роль альтернатив JavaScript
Лицензия: CC-BY
Тип: английский / Обобщение
Ключевые слова: javascript, web, mobile
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, Аноним (-), 13:14, 15/07/2013 [ответить] [показать ветку] [···]    [к модератору]
  • +20 +/
    >  Наиболее перспективно в этом плане выглядит Asm.js, низкоуровневое
    > подмножество языка JavaScript со строгой типизацией

    Ага, сначала создадим себе проблемы на ровном месте, а потом будем героически с ними бороться, вбивая эпические костыли. Вебдванольненько.

     
     
  • 2.24, Аноним (-), 16:32, 15/07/2013 [^] [ответить]     [к модератору]
  • +3 +/
    Это какие проблемы создал JS относительно смартфонов Месье не в курсе, что когд... весь текст скрыт [показать]
     
     
  • 3.30, Аноним (-), 19:15, 15/07/2013 [^] [ответить]    [к модератору]  
  • –3 +/
    > Это какие проблемы создал JS относительно смартфонов?

    Динамическая типизация, GC. Сразу понятно было что это быстрым не будет.

     
     
  • 4.41, Аноним (-), 21:36, 15/07/2013 [^] [ответить]    [к модератору]  
  • +/
    Анон, читай что пишешь. Это в середине 90-х было сразу понятно, что на гламурных смартфонах в 2010-х он будет тормозить, что ли?
     
     
  • 5.49, анонимс (?), 17:23, 16/07/2013 [^] [ответить]    [к модератору]  
  • +/
    В середине 90-х были ходовыми конфигурации Pentium ~166MMX, 32-64Mb. Современные смартфоны намного производительнее тех машин. (На моем ZOPO C2 3DMark выдает ~10fps)
     
  • 4.51, arisu (ok), 06:53, 17/07/2013 [^] [ответить]    [к модератору]  
  • +/
    > Сразу понятно было что это быстрым не будет.

    офигеть ты эксперт.

     
  • 3.43, all_glory_to_the_hypnotoad (ok), 22:36, 15/07/2013 [^] [ответить]     [к модератору]  
  • –3 +/
    большая куча тупых веб гогнкодеров будет теперь херачить медленные, прожорливы... весь текст скрыт [показать]
     
     
  • 4.56, Ононимус (?), 12:18, 02/03/2016 [^] [ответить]     [к модератору]  
  • +/
    вообще в этот шаблон большая куча тупых LANG_NAME гогнкодеров будет теперь... весь текст скрыт [показать]
     
  • 2.44, rshadow (ok), 01:41, 16/07/2013 [^] [ответить]    [к модератору]  
  • +/
    Что только не придумают лишь бы пяток самых нормальных скриптовых языков в браузер не впилить.
     
     
  • 3.52, arisu (ok), 06:54, 17/07/2013 [^] [ответить]    [к модератору]  
  • +/
    > Что только не придумают лишь бы пяток самых нормальных скриптовых языков в
    > браузер не впилить.

    ящитаю, gw-basic'а было бы достаточно!

     
  • 1.2, Аноним (-), 13:25, 15/07/2013 [ответить] [показать ветку] [···]    [к модератору]  
  • +8 +/
    > Отставание по производительности от C/C++ оценивается примерно в 50 раз, а от
    > Java/Ruby/Python/C# в 10 раз

    Сомнительные какие-то цифры. Я бы мог поверить что яваскрипт сопоставим с питоном (то есть в полтора/два раза), но чтобы в 10 раз?

     
     
  • 2.3, Аноным (ok), 13:27, 15/07/2013 [^] [ответить]    [к модератору]  
  • +5 +/
    Вообще ж писали, что Node.js очень быстрые по сравнению со всякими Питонами и Рубями.
     
     
  • 3.10, Nuzhny (?), 14:38, 15/07/2013 [^] [ответить]    [к модератору]  
  • +2 +/
    На мобильных же устройствах! Думаю, что из динамики lua (или luaJit) показал бы наилучшие результаты.
     
  • 3.12, Аноним (-), 14:40, 15/07/2013 [^] [ответить]    [к модератору]  
  • +1 +/
    Быстрые на x86/x86_64. А тут мало памяти и ARM.
     
     
  • 4.15, Аноным (ok), 15:03, 15/07/2013 [^] [ответить]    [к модератору]  
  • –1 +/
    Через год 2 гига мало будет.
     
     
  • 5.57, Ононимус (?), 12:20, 02/03/2016 [^] [ответить]    [к модератору]  
  • +/
    > Через год 2 гига мало будет.

    вы, походу, гость из прошлого

     
  • 2.26, Аноним (-), 18:08, 15/07/2013 [^] [ответить]    [к модератору]  
  • +/
    Странно, что в один ряд воставили Java и Python. Между ними как бе осне больштй разрыв в производительности.
     
     
  • 3.31, Аноним (-), 19:16, 15/07/2013 [^] [ответить]    [к модератору]  
  • +/
    > бе осне больштй разрыв в производительности.

    Что не мешает и тому и другому быть редкостным тормозиловом :).

     
     
  • 4.47, Аноним (-), 11:37, 16/07/2013 [^] [ответить]    [к модератору]  
  • +/
    ахтунг анонимные аналитики в треде, все на космический корабль и летим в другую галактику.
     
  • 1.4, x0r (??), 13:27, 15/07/2013 [ответить] [показать ветку] [···]    [к модератору]  
  • +2 +/
    он все понял
     
  • 1.5, anoname (?), 13:30, 15/07/2013 [ответить] [показать ветку] [···]    [к модератору]  
  • +6 +/
    >JavaScript-приложения существенно отстают по производительности от нативных программ

    Вот это новость! А мужики-то не знают.

     
  • 1.7, demimurych (ok), 13:33, 15/07/2013 [ответить] [показать ветку] [···]    [к модератору]  
  • +6 +/
    Не вполне понял.
    В статье графики о том что javascript отстает по производительности. Ок принимаем это за аксиому, но тут же напрашивается вопрос, где сравнение не в попугаях, а на реальных задачах?

    То что javascript медленнее совсем не говорит о том, что его производительности недостаточно для эффективного решения таких то и таких то задач.

     
  • 1.8, Аноним (-), 14:19, 15/07/2013 [ответить] [показать ветку] [···]    [к модератору]  
  • +1 +/
    35 мегабайт джаваскрипта. Это что, angular.js?
     
     
  • 2.18, pavlinux (ok), 16:02, 15/07/2013 [^] [ответить]     [к модератору]  
  • +4 +/
    code This file is part of the superpuper project Copyright C 20... весь текст скрыт [показать]
     
  • 1.11, Анонимный_Аноним (?), 14:39, 15/07/2013 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Уже жду аппаратную реализацию javascript и грелок (телефонов) с ядерным реакторам вместо батареи.
     
  • 1.13, Аноним (13), 14:53, 15/07/2013 [ответить] [показать ветку] [···]    [к модератору]  
  • –4 +/
    поэтому ведщроид всегда будет лагать, и жрать батарею. и всякие хромооси с фаерфокссистемами.
     
     
  • 2.16, Аноным (ok), 15:05, 15/07/2013 [^] [ответить]    [к модератору]  
  • +4 +/
    А Ведроид-то тут причём, Жабоскрипт с Жабой путаем? К тому же на Ведроиде можно нативненькое писать.
     
     
  • 3.17, Аноним (-), 15:16, 15/07/2013 [^] [ответить]    [к модератору]  
  • +/
    >C/C++ оценивается примерно в 50 раз, а от Java/Ruby/Python/C# в 10 раз

    Между нативом и явой разница в 5 раз.

     
     
  • 4.20, pavlinux (ok), 16:11, 15/07/2013 [^] [ответить]    [к модератору]  
  • +/
    >>C/C++ оценивается примерно в 50 раз, а от Java/Ruby/Python/C# в 10 раз
    > Между нативом и явой разница в 5 раз.

    Докажи!

     
  • 4.27, Аноним (-), 18:10, 15/07/2013 [^] [ответить]    [к модератору]  
  • +/
    У меня от вас JIT, месье.
     
     
  • 5.32, Аноним (-), 19:18, 15/07/2013 [^] [ответить]     [к модератору]  
  • +/
    С JIT оно и сливает раза в три Бенчи можно посмотреть допустим на quicklz com -... весь текст скрыт [показать]
     
  • 2.23, kurokaze (ok), 16:28, 15/07/2013 [^] [ответить]     [к модератору]  
  • +1 +/
    Очень толсто как программист на Obj-C Java говорю Еще толще А тут в тему стать... весь текст скрыт [показать]
     
     
  • 3.33, Аноним (-), 19:19, 15/07/2013 [^] [ответить]     [к модератору]  
  • +/
    Спасибо, я видел как работает ведроид если там парочку программ запустить Самый... весь текст скрыт [показать]
     
  • 1.14, Пиу (?), 14:58, 15/07/2013 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    лол, капитан очевидносте!
    уже даже плюсы довели до юзабельного состояния, а он о жабоскрипте думает
     
  • 1.19, Аноним (-), 16:02, 15/07/2013 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    скомпилированная программа оказала быстрее интерпретируемой! ну надо же какое открытие! вот такие открытия делают "специалисты".
     
     
  • 2.21, pavlinux (ok), 16:14, 15/07/2013 [^] [ответить]    [к модератору]  
  • +/
    Поэтому Дрю Кроуфорд, специалист по разработке мобильных приложений. А не высер на опеннете.
     
     
  • 3.34, Аноним (-), 19:20, 15/07/2013 [^] [ответить]    [к модератору]  
  • +1 +/
    > опеннете.

    Выceры на опеннете - прерогатива павлина :).

     
  • 1.22, Аноним (-), 16:27, 15/07/2013 [ответить] [показать ветку] [···]     [к модератору]  
  • +/
    Интересный кусок A Rust contributor weighs in I 8217 m a contributor to the ... весь текст скрыт [показать]
     
  • 1.25, edwin (??), 17:38, 15/07/2013 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Правильнее назвать статью: "проблемы работы движков JS в браузерах для мобильных платформ" ... ИМХО - так все-же правильно.
    И работы в этом направлении идут очень интенсивно ... причем как в плане самого движка JS так и того, каким CPU в мою устройствах ...
      
     
  • 1.28, Аноним (-), 19:08, 15/07/2013 [ответить] [показать ветку] [···]     [к модератору]  
  • +1 +/
    Чота я сомневаюсь что JavaScript медленее чем питон руби, надо смотреть конечно ... весь текст скрыт [показать]
     
  • 1.29, Аноним (-), 19:12, 15/07/2013 [ответить] [показать ветку] [···]     [к модератору]  
  • +2 +/
    Да цифры что-то сомнительные Например здесь JS по производительности выглядит оч... весь текст скрыт [показать]
     
  • 1.35, Аноним (-), 19:37, 15/07/2013 [ответить] [показать ветку] [···]     [к модератору]  
  • +/
    В статье написано, что отставание в 5 раз, ещё 10 раз дают разница в железе деск... весь текст скрыт [показать]
     
     
  • 2.36, Аноним (-), 19:45, 15/07/2013 [^] [ответить]     [к модератору]  
  • +1 +/
    То, что по-видимому было искажено в результате перевода 50 раз здесь - нативные... весь текст скрыт [показать]
     
  • 1.37, Заоза (ok), 20:05, 15/07/2013 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    Приложения на андройде почти все поголовно на яве, отсюда уже можно сделать вывод. Уже процы на топовые смартфоны ставят по 1.5ггц, да и память до 2х гигов вставляют, от этого хромает энергосбережение, если я у себя на самом слабеньком одноядерном процессоре 768 мгц еле еле выжимаю 10 рабочих дней, то я не представляю сколько работают топовые четырех\восьми яд., с всякими супер амоледами с разрешением 1920 на 1080, это ужас просто, день, два? Каждый день зарядка? Что это за кара такая?....
     
     
  • 2.38, Аноным (ok), 20:16, 15/07/2013 [^] [ответить]    [к модератору]  
  • –1 +/
    Если брать какой-либо известный современный флагман, то просто в роли звонилки в 2г-сети он более 4 дней не протянет никак.
     
  • 2.40, pro100master (ok), 21:29, 15/07/2013 [^] [ответить]    [к модератору]  
  • –1 +/
    2ГГЦ на АРМ это, в лучшем случае, 200МГц на Интеле по bogomips. В реальности, все еще хуже, за счет дико умных предсказателей и кешей всё той же компании. В своё время, у меня на каком-то втором пне интернет-странички так же тормозили :)
     
     
  • 3.46, NikolayV81 (?), 09:48, 16/07/2013 [^] [ответить]    [к модератору]  
  • +/
    Будем думать с возвращением intel хоть и через процессоры для win8 конкуренция заставит немного почесаться. А так если там 2-4Вт термопакет, то что можно ожидать от сравнения хотя-бы с 17Вт Intel-а в i-3-5-7...U при равной частоте не может быть одинаковой производительности.
     
  • 1.39, Михрютка (ok), 21:11, 15/07/2013 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    > если размер программы укладывается в 35 Мб,
    > при дальнейшем  увеличении размера приложения производительность деградирует экспоненциально.

    это вот что это такое за фигню я только что прочитал?

     
  • 1.42, Аноним (-), 22:30, 15/07/2013 [ответить] [показать ветку] [···]     [к модератору]  
  • +/
    Подучите английский и выбросите этот отвратительный промт, которым вы переводили... весь текст скрыт [показать]
     
     
  • 2.53, arisu (ok), 07:02, 17/07/2013 [^] [ответить]    [к модератору]  
  • +1 +/
    > выбросите этот отвратительный промт, которым вы переводили статью.

    тогда «пиривотчеку» придётся отрезать себе голову. не то, чтобы кто-то потом заметил разницу в интеллекте, но эстетика-с… да и кушает он туда.

    p.s. «пиривот» взялся вот отсюда: «If you find yourself with 6 times as much memory as you need, garbage collection is actually going to be pretty fast.  So for example, if you are writing a text editor, you might realistically be able to do everything you want in only 35MB, which is 1/6th the amount of memory before my iPhone 4S crashes.» и так далее. вот они, заветные «триццатьпятьмигабайтов».

    ну, это ж опеннет: тут «пиривотчеки» традиционно понимают только цифры и fuck, остальное домысливают в меру своего идиотизма. ради чего на опеннет и хожу: сравнение оригинала и «пиривота» или «выжимки» часто неимоверно доставляет. вплоть до того, что «пиривотчик» на опеннете может написать полностью противоположное тому, что говорится в оригинале.

     
  • 1.45, anonymous (??), 08:35, 16/07/2013 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Откровение капитана Очевидность.
     
  • 1.48, Аноним (-), 17:07, 16/07/2013 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Страницы в 10+ мегабайт кода без учета картинок и флэша нужно добавлять в списки блокировок рекламы
     
  • 1.50, arisu (ok), 06:51, 17/07/2013 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    развёрнутая статья, которая поясняет тупообезьянам, отчего их жысы-поделки всегда будут сосать.

    и совершенно бесполезная, потому что тупообезьяны не то, что понять — они и прочесть такое количество букв не способны.

     
     
  • 2.54, Михрютка (ok), 14:08, 17/07/2013 [^] [ответить]    [к модератору]  
  • +/
    > развёрнутая статья, которая поясняет тупообезьянам, отчего их жысы-поделки всегда будут
    > сосать.
    > и совершенно бесполезная, потому что тупообезьяны не то, что понять — они
    > и прочесть такое количество букв не способны.

    самое печальное, что да. я уже пару разоблачений прочитал.

    I think a better title would be: “Reminder that JS is crippled on iOS.” Or something along those lines. Yup. It is. But don’t blame JavaScript. Blame Apple. They don’t want you to use JavaScript because then your code would be more portable. And that’s the last thing they want!

    праздник. жыды как обычно виноваты.

     
     
  • 3.55, arisu (ok), 14:53, 17/07/2013 [^] [ответить]    [к модератору]  
  • +/
    ну дык. капитаню помаленьку.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру
    Hosting by Ihor