The OpenNET Project / Index page

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

Взгляд на производительность JavaScript от одного из разработчиков Java

17.07.2013 20:57

Шай Альмог (Shai Almog), один из разработчиков виртуальной машины и JIT-движка для Java, опубликовал развёрнутый ответ на недавнюю публикацию Дрю Кроуфорда о проблемах JavaScript, мешающих использованию данного языка для создания мобильных приложений. По мнению Шая причина низкой производительности web-приложений в основном связана с особенностью интерфейса DOM (Document Object Model), а не самим языком. Кроме того, высказанные в статье претензии к сборщику мусора и JIT-компилятору, по мнению Шая, являются ошибочными. В своей заметке Шай проводит достаточно много аналогий с Java и, в частности, приводит пример достижения приемлемой производительности Java Mobile на телефонах Nokia с экраном 240x320 и 2 Мб ОЗУ.

  1. Главная ссылка к новости (http://www.codenameone.com/3/p...)
  2. OpenNews: Исследование проблем с производительностью JavaScript на мобильных устройствах
  3. OpenNews: Новые версии языков Dart и TypeScript, претендующих на роль альтернатив JavaScript
  4. OpenNews: Представлен ORBX.js - сравнимый с H.264 видеокодек, реализованный целиком на JavaScript
  5. OpenNews: В Firefox 22 появится Asm.js, низкоуровневое высокопроизводительное подмножество JavaScript
  6. OpenNews: JavaScript выбран в качестве основного языка разработки приложений для GNOME
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/37442-javascript
Ключевые слова: javascript
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (106) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноным (ok), 21:04, 17/07/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Будем делать интерфейсы на канвансе и ВебГЛ.
     
     
  • 2.2, Наивный чукотский юноша (?), 21:07, 17/07/2013 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Ох, /me предчувствует, что слова анонима пророческие.
     
     
  • 3.10, Аноним (-), 21:45, 17/07/2013 [^] [^^] [^^^] [ответить]  
  • –7 +/
    Под канвас и вебгл и для десктопов-то нет нормальных гуй-библиотек. Разве что квадратные кнопочки в блендере.
    Если описывать полноценный DOM-аналог для канваса на js - он будет тормозит намного больше чем сам DOM

    Что же до тормозов DOM'а. Так сравнивать-то его не с чем. Возможности разметки на HTML+CSS+js куда значительнее любого GUI на любом языке

     
     
  • 4.13, Sergey (??), 22:15, 17/07/2013 [^] [^^] [^^^] [ответить]  
  • +5 +/
    >> Возможности разметки на HTML+CSS+js куда значительнее любого GUI на любом языке

    Ляпнул так ляпнул...

     
     
  • 5.14, Sinot (ok), 22:20, 17/07/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У меня даже была шальная мысль попробовать нарисовать веб-приложение (даже не так, приложение в браузере) целиком на канве, но подумал о производительности и сразу охота отпала. Хотя вроде как Qt и GTK именно так и делают.
     
     
  • 6.21, Карбофос (ok), 23:04, 17/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    на Qt3 было достаточно много проблем с отрисовкой, очень многое из проблемного списка было улучшено в Qt4. Но, довольно часто были траблы, когда похабно сделанный signal-slot механизм в исходном коде программы списывался на кривость Qt. Такое видел очень часто.
     
  • 6.24, Crazy Alex (ok), 23:37, 17/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Для канвы хотя бы в принципе есть шанс получить приличное быстродействие, выкинув все что можно в видеокарту, оставив браузеру самый минимум. А с монструозным DOM - ни шанса, так еще и приходится втискиваться в идиотскую браузерную потоковую модель.
     
     
  • 7.43, Аноним (-), 02:36, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Да, кстати, работа с DOM самое тормозное, пожалуй.
     
  • 5.18, Аноним (-), 23:02, 17/07/2013 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Возразить нечего, я так понимаю?
     
     
  • 6.25, Crazy Alex (ok), 23:39, 17/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Фишка в том, что для ПРИЛОЖЕНИЯ 99% этих возможностей либо избыточны, либо вообще вредны. А ресурсы на них тратить всё равно приходится. А примитивная и довольно симпатичная кнопочка жила еще в DOS на каком-нибудь 286.
     
     
  • 7.35, Аноним (-), 01:40, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Представь себе что на всех сайтах есть только набор сереньких GUI-компонент и больше ничего
     
     
  • 8.38, Crazy Alex (ok), 01:52, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Для веб-приложения - именно это и нужно ... текст свёрнут, показать
     
  • 8.45, arisu (ok), 07:20, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +7 +/
    это было бы просто великолепно а то МегаДизайнеры задолбали ... текст свёрнут, показать
     
     
  • 9.68, Аноним (-), 17:12, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Linx в зубы Что-то не слишком-то ты бежишь в голом текстике на мордокнижечке си... текст свёрнут, показать
     
     
  • 10.75, arisu (ok), 17:28, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    прикинь, я и в графичке туда не бегу я понимаю, что ты жизни не представляешь б... текст свёрнут, показать
     
  • 8.54, Vkni (ok), 09:05, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Ну почему же обязательно серенькие Можно и синие - Красивые кнопочки можно о... текст свёрнут, показать
     
     
  • 9.58, Пышпер (?), 09:38, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Еретик ... текст свёрнут, показать
     
     
  • 10.69, Аноним (-), 17:12, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Трепло он, а не еретик ... текст свёрнут, показать
     
  • 7.36, Аноним (-), 01:43, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    На хабре народ в печали что флеш погубили, с его анимированными векторными мувиклипами..
    А на опеннете предлагают довольствоваться стандартными визуальными компонентами..
     
     
  • 8.39, Crazy Alex (ok), 01:53, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Они там вообще красивости много больше любят, чем функциональность ... текст свёрнут, показать
     
  • 2.7, Аноним (-), 21:38, 17/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Так уже.

    http://www.zebkit.org/samples/index.html

     
  • 2.12, Карбофос (ok), 22:10, 17/07/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    так криворукие программисты и на нём умудрятся сделать так, чтобы работало медленно. ибо у оных принцип: кое-как работает - не трогай. от этого все проблемы гурьбой потом внезапно появляются. здесь на 5% потери производительности забили, там - еще столько же. никто ж не знает, что такое профилировка, етить.
     

  • 1.3, all_glory_to_the_hypnotoad (ok), 21:08, 17/07/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > В своей заметке Шай проводит достаточно много аналогий с Java и, в частности, приводит пример достижения приемлемой производительности Java Mobile на телефонах Nokia с экраном 240x320 и 2 Мб ОЗУ.

    там то GC скрее всего не было и мб даже самого JITа. Тормозить было особо нечему

     
     
  • 2.9, Аноним (-), 21:42, 17/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >там то GC скрее всего не было

    Как же? Ведь память надо как-то освобождать. Не в ручную же.
    >мб даже самого JITа

    мало какие телефоны умели jit.

     
     
  • 3.17, all_glory_to_the_hypnotoad (ok), 23:01, 17/07/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Как же? Ведь память надо как-то освобождать. Не в ручную же.

    там gc совсем простой, чуть ли не аналог сишного malloc()/free() или в лучшем случае питоновского GC со ссылками, который освобождает объект сразу как только можно. GC в яве тормозит именно из-за отложенного коллектора, сначала засирает что только можно, а потом наступает пц.

     
     
  • 4.28, Magister (?), 23:42, 17/07/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > там gc совсем простой, чуть ли не аналог сишного malloc()/free() или в лучшем случае
    > питоновского GC со ссылками, который освобождает объект сразу как только можно. GC в яве
    > тормозит именно из-за отложенного коллектора, сначала засирает что только можно, а потом
    > наступает пц.

    Не такой и простой, по крайней мере на сонериках db2010 и выше.
    Помню, как ручками вызывал System.gc() чтобы памяти чуть освободить когда она нужна.
    Так что он, естественно, проще, чем на десктопе - но засирает что только можно ни капли не хуже.

     
  • 4.32, iZEN (ok), 00:02, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • –11 +/
    > GC в яве тормозит именно из-за отложенного коллектора, сначала
    > засирает что только можно, а потом наступает пц.

    Ну а кто, спрашивается, насоздаёт короткоживущих объектов на "каждый чих", а потом не знает как их повторно использовать и надеется на уборку мусора? Правильно — бывшие программеры C/C++, которым привычные malloc()/free() использовать тут не дали, а всучили убогий "ручник" сломанного "стопкрана" System.gc(). :)))


     
     
  • 5.33, Карбофос (ok), 00:22, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    проверка твоих теоретических умозаключений: сделай парсер, или какой обработчик строк на жабе. будешь сильно удивлён. вот уж во истину, на каждый чих. даже, если соединяешь с константными строками.
    просто пичалька, от "глубинных" знаний жабакодеров. и да, как обычно, в своём упорно не замечеют бревна. такая грусть.
     
     
  • 6.64, iZEN (ok), 14:24, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Для простейшей операции конкатенации строк в Java и J2ME используется оптимиза... большой текст свёрнут, показать
     
     
  • 7.66, Карбофос (ok), 14:52, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +4 +/
    ты это серьезно? декомпайлер для жабы, он такой ужасно сложный, прям аж жуть. как раз я и занимался разбором полётов подобных парсеров, логгеров, в том числе и видел, каким образом жабисты извращаются, дабы ускорить процесс обработки строк. так что можешь продолжать и дальше детский лепет на лужайке.
    раскрою тебе даже большой секрет, до которого ты никак не можешь допиликать сам: именно из-за геморра с объектами из-за каждого выпука невозможно сделать адекватно работающий, не тормозящий браузер. это как пример.
    Sun в свое время по этим же причинам не захотела конвертировать OpenOffice, а IBM свои большие проекты тестирует сначала на джаве, а потом уже конверитует их по своему усмотрению в фортран, плюсы и другие языки.
     
  • 5.34, Аноним (-), 00:37, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Какой смысл писать на жабе, если всё равно приходится изворачиваться кренделем ради памяти?
     
     
  • 6.65, iZEN (ok), 14:28, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Какой смысл писать на жабе, если всё равно приходится изворачиваться кренделем ради памяти?

    Потому что память в Java — не ресурс. Если его реально не хватает, то повышайте скилл Re-Usable Objects и/или докупайте модули памяти. Третьего не дано.


     
     
  • 7.71, Аноним (-), 17:14, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >> Какой смысл писать на жабе, если всё равно приходится изворачиваться кренделем ради памяти?
    > Потому что память в Java — не ресурс. Если его реально не
    > хватает, то повышайте скилл Re-Usable Objects и/или докупайте модули памяти. Третьего
    > не дано.

    Ачо, сборщики мусора еще не изобрели? Или их вызов - песдетс ракетная наука?

     
     
  • 8.81, arisu (ok), 17:34, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ну чего ты пристал изя же рукожоп а у рукожопа 171 докупайте памяти, она коп... текст свёрнут, показать
     
  • 7.84, Карбофос (ok), 18:11, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >Третьего не дано.

    ой ли?! портировать программу из жабы на более подходящий для задачи язык программирования.

     
     
  • 8.86, iZEN (ok), 18:17, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Портируйте Spring Framework на что-то другое 8212 поговорим Напишите NetBean... текст свёрнут, показать
     
     
  • 9.88, arisu (ok), 18:41, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    это да таких тормозных удолбищ, как eclipse, например 8212 ещё поискать авт... текст свёрнут, показать
     
  • 9.90, Карбофос (ok), 19:16, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    если бы этим проектам не было бы адекватной альтернативы, их бы давно уже портир... текст свёрнут, показать
     
     
  • 10.99, iZEN (ok), 07:41, 19/07/2013 [^] [^^] [^^^] [ответить]  
  • –2 +/
    У меня SWAP а вообще нету и не жужжу 8 ГБ, ZFS 8212 полёт нормальный ... текст свёрнут, показать
     
     
  • 11.102, arisu (ok), 09:24, 19/07/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    единственное полезное дело, которое ты мог бы совершать, и то 8230 ... текст свёрнут, показать
     
  • 11.106, Карбофос (ok), 10:03, 19/07/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    и что предмет гордости, или предлагаешь мне на моём домашнем лептопе с двумя ги... текст свёрнут, показать
     
     
  • 12.108, arisu (ok), 10:04, 19/07/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    можешь не вырубать, а просто писать, что вырубил и гордиться вон изя же сидит в... текст свёрнут, показать
     
  • 12.109, iZEN (ok), 12:51, 19/07/2013 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Ни для кого не секрет, что SWAP придуман для того, чтобы эмулировать дополните... большой текст свёрнут, показать
     
     
  • 13.112, труляляй (?), 00:24, 20/07/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    изька, зачем ты тут рассказываешь про своп тебе больше рассказать нечего ... текст свёрнут, показать
     
  • 13.113, Карбофос (ok), 20:41, 21/07/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    кто тебе сказал вообще, что я использую своп такого же объема, что оперативка т... текст свёрнут, показать
     
  • 5.44, Аноним (-), 02:42, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Правильно — бывшие программеры C/C++, которым привычные malloc()/free() использовать
    > тут не дали, а всучили убогий "ручник" сломанного "стопкрана" System.gc(). :)))

    Вообще-то если что, emscripten для повышения производительности JS зарубает GC к черту. Знаешь как?  

    1) Он выделяет себе невь...й массив.
    2) В него заворачиваются все malloc().
    3) GC вообще в пролете - он это не сколлектит вплоть до самого конца работы программы.

    И вот только так emscripten умудряется нормальную скорость работы получить. Послав GC нафиг. Совсем.


     
  • 5.47, arisu (ok), 07:24, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ну а кто, спрашивается, насоздаёт короткоживущих объектов на «каждый чих», а потом
    > не знает как их повторно использовать и надеется на уборку мусора?

    так кто же виноват, что в жабе сборщик настолько хреновый?

    (хотя, конечно, он там не один, и не хреновые они, просто пишут на жабе вот такие вот изи — и получается говно).

     
     
  • 6.72, Аноним (-), 17:17, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Х р е н о в ы й не сборщик Х р е н о в ы е рукосуи, которые пишут программы Ка... большой текст свёрнут, показать
     
     
  • 7.76, Аноним (-), 17:30, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Шакалов не знал, что надо вызывать сборщик мусора (один из трех,
    > имеющихся в наличии, кстати говоря)

    А еще говорят что на си программировать сложно, память выделять/освобождать, блаблабла. А у самих вон сколько гемора. И память совсем не утекает :)

     
  • 7.77, arisu (ok), 17:31, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    если сборщик мусора надо явно вызывать — это не язык, а дерьмо. впрочем, практика показывает, что если в названии чего-то софтового есть «bussines» — то это дерьмо с вероятностью, близкой к единице.
     
  • 5.52, Аноним (-), 08:04, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Вы хоть Макконнелла почитайте для общего развития, что ли, прежде, чем чушь пороть. Программы пишутся - в том числе и для людей, а не только для машин. Короткая жизнь объёкта - это во многом то, что борется с кашей в голове. А то, что жаба это переваривает с трудом - так это проблема жабы и её мусорки.
     
     
  • 6.55, Vkni (ok), 09:08, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > А то, что жаба
    > это переваривает с трудом - так это проблема жабы и её
    > мусорки.

    Там нет выделения на стеке, прекрасно приспособленного для короткоживущих объектов.

     
     
  • 7.56, arisu (ok), 09:14, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Там нет выделения на стеке, прекрасно приспособленного для короткоживущих объектов.

    что, в принципе, решается хитрым generational gc. стек тянет за собой толстый и невкусный механизм unwinding'а, а generational gc позволяет не загромождать VM всякой бесполезной фигнёй.

    одно дело, когда у меня try/catch/finally явно в коде стоит, и unwind frames создаются только для такого кода. и совсем другое — когда создаются везде, где меня угораздило создать локальный автоматический объект.

     
     
  • 8.59, Vkni (ok), 09:55, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Твой нелюбимый Куздра об этом недостатке Java как-то рассказывал, но где - не по... текст свёрнут, показать
     
     
  • 9.60, arisu (ok), 10:12, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    этому товарищу доверие нулевое вообще, он феерически некомпетентен проверять ка... текст свёрнут, показать
     
  • 7.57, arisu (ok), 09:18, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    p.s. другое дело, что для GC неплохо бы иметь несколько больше помощи от MMU, чем сейчас предоставляется через API, но это уже совсем другая песня. ребята из Azul Systems, например, показали, что при некоторой поддержке GC становится сильно легче жить.
     
  • 6.73, Аноним (-), 17:18, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Вы хоть Макконнелла почитайте для общего развития, что ли, прежде, чем чушь
    > пороть. Программы пишутся - в том числе и для людей, а
    > не только для машин. Короткая жизнь объёкта - это во многом
    > то, что борется с кашей в голове. А то, что жаба
    > это переваривает с трудом - так это проблема жабы и её
    > мусорки.

    Еще раз - это проблема не среды. Это проблема п и д о р а^Wп р о г р а м м и с т о в.

     
     
  • 7.78, Аноним (-), 17:32, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Еще раз - это проблема не среды. Это проблема п и д
    > о р а^Wп р о г р а м м и с т о в.

    Проблема только в том что сферическая среда в вакууме - ни о чем. А на яве, да и на JS обычно пишут ... изены всякие. Нет, парочка специалистов по рокетсайнсу на всю планету и на яве могут нормально писать. Остальные на ней пишут "как изен".

     
     
  • 8.91, iZEN (ok), 19:19, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Смеёшься что ли Я привёл прямо противоположную историю о тех бывших C C прогр... текст свёрнут, показать
     
     
  • 9.93, Карбофос (ok), 19:56, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    какая-то невероятно неправдоподобная история есть такая вещь, называется сила ... текст свёрнут, показать
     
     
  • 10.94, arisu (ok), 19:58, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а то изя же говнокодер, причём говнокодер, который не знает ни одного языка нор... текст свёрнут, показать
     
     
  • 11.95, Карбофос (ok), 20:04, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    так вот об чем и речь или, может это джава так пагубно влияет, что люди явно де... текст свёрнут, показать
     
     
  • 12.96, arisu (ok), 20:12, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    да нет, я изю много лет знаю думаю, больше десяти , и не только по этому ресурс... текст свёрнут, показать
     
     
  • 13.98, Карбофос (ok), 22:46, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    не, я не про него, а про его полёт фантазии, в которой бывшие программисты сей и... текст свёрнут, показать
     
     
  • 14.101, arisu (ok), 09:23, 19/07/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    есть подозрение, что это отголоски его личного неприятного опыта ... текст свёрнут, показать
     

  • 1.4, Аноним (-), 21:28, 17/07/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Одно лучше другого,
    Лучше бы что то типа Dart увидеть прям в ядре браузера
     
     
  • 2.5, Аноним (-), 21:29, 17/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    http://www.dartlang.org/
    http://golang.org/
     
  • 2.6, Аноним (-), 21:30, 17/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Одно лучше другого,
    > Лучше бы что то типа Dart увидеть прям в ядре браузера

    Фичи дарта тут https://docs.google.com/presentation/d/1zfucLA3XNqRb7W56ldU_Biya-IrS00QmSuXNYw

     
     
  • 3.37, Xasd (ok), 01:46, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > https://docs.google.com/presentation/d/1zfucLA3XNqRb7W56ldU_Biya-IrS00QmSuXNYw

    SIMD это хорошо, но...

    ...нет необходимости менять синтаксис языка ЛИШЬ ТОЛЬКО для того чтобы добавить туда SIMD

    это можно реализовать -- даже и с существующим синтаксисом ECMAScript:

    https://github.com/johnmccutchan/ecmascript_simd/blob/master/src/ecmascript_si

    http://wiki.ecmascript.org/doku.php?id=strawman:simd_number

     
     
  • 4.40, Аноним (-), 02:17, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >> это можно реализовать -- даже и с существующим синтаксисом ECMAScript:

    спасибо но костыли не нужны совершенно для скачки хлама

     
  • 2.8, Аноним (-), 21:40, 17/07/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Лучше бы родили стандарт байткода для generic web browser vm. Не смогли договориться об интерфейсах в различных аппаратно-софтенных платформах, отрыгните хотя бы для браузеров. Нет, млин, будем костылять через конверторы c/c++ в js, лить эту беду по http и хвастаться какой у нас реализован расклиздатый jit
     
     
  • 3.15, Sinot (ok), 22:23, 17/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Лучше бы родили стандарт байткода для generic web browser vm.

    Так вроде NaCl оно и есть, правда пока только у Google и не стандарт.

     
     
  • 4.16, Аноним (-), 22:28, 17/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Похоже что оно. Вива ля Гугл?
     
  • 4.19, all_glory_to_the_hypnotoad (ok), 23:02, 17/07/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    нет, это совсем не оно. NaCl это нативный код.
     
     
  • 5.26, Crazy Alex (ok), 23:41, 17/07/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Они PNaCl допилили, там именно байткод. Да и какая разница, байткод или натив - лишь бы были стандартные соглашения по вызовам.
     
     
  • 6.49, arisu (ok), 07:26, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Да и какая разница, байткод или натив

    …всё равно кроме x86 процессоров нет!

     
     
  • 7.61, мшефд (?), 10:41, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    _P_NaCl - уже LLVM.
     
     
  • 8.62, arisu (ok), 10:55, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    я рад за него а за тебя 8212 нет ты не умеешь читать то, на что отвечаешь ... текст свёрнут, показать
     
  • 4.41, Xasd (ok), 02:17, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Лучше бы родили стандарт байткода для generic web browser vm.
    > Так вроде NaCl оно и есть, правда пока только у Google и
    > не стандарт.

    NaCL/PNaCl ---- это <embed>-сущность

    ну не могут быть <embed>-сущности быть даже близко быть в стандарте. слишком уж кривая задумка!!

    более вероятно что вообще <embed>-тэг (и <object>-тэг) ВЫПИЛЮТ из стандарта! :)

    Asm.Js ---- является намного более безкостыльное решение чем NaCL/PNaCl .

     
     
  • 5.50, arisu (ok), 07:27, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Asm.Js ---- является намного более безкостыльное решение чем NaCL/PNaCl .

    ага. примерно такое же хорошее, как твой русский.

     
  • 3.42, Xasd (ok), 02:24, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Нет, млин, будем костылять через конверторы c/c++ в js,

    ну сколько уже раз повторять блин -----

    Asm.Js -- НЕ ЯВЛЯЕТСЯ Яваскриптом!!! из него НЕЛЬЗЯ получить: ни доступа к объектам Document-Object-Model ни доступа даже к динамечески выделяемой памяти и сборщику мусора.

    (ды и вообще объектов-ни-каких нет в Asm.Js, там только байты, и манипуляция с байтами..)

    всё взаимодействие с внешним миром -- в выполяемом модуле Asm.Js -- происходит либо через FFI-интерфейс либо через общую бинарную память!.. ЭТО ДАЖЕ БЛИЗКО НЕ ПОХОЖЕ НА JAVASCRIPT!!!

    Asm.Js даёт свободы -- даже меньше чем даёт свободы уровень языка Си! это уже реально почти ассемблер!! (есть же люди которые называют язык Си -- кросплатформенным ассемблером?! а Asm.Js ещё более низкоуровневый язык чем язык Си!)

    (FFI --- "Foreign Function Interface")

    <sarcasm>...но выже блин такие умные, вы даже не читая спецификаци (и не написав ни одного скрипта с использование Asm.Js) уже всё знаете</sarcasm>

    попробуйте напишите на asm.js -- HelloWorld -- который оперирует с массивами данных и оперирует с указателями на функции --- и тогда поймёте настолько Asm.Js похож/или/не_похож на Javascript .

    ...ну например --- напишите модуль сортировки (таким образом: будут использованы массивы) с выбором алгоритма сортировки (таким образом: будут использованы указатели на функции).

    или напишите модуль AES-шифрования. (в этом случае тоже можно задействовать массивы и указатели на функции).

    чего вам терять? вот прям щаз сядьте и напишите!

     
     
  • 4.51, arisu (ok), 07:29, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    откуда такая истерика-то? я читал предварительные спеки этих мегакостылей ещё до того, как тебе в новостях о них рассказали. родилось мегакостылями и осталось мегакостылями. по сравнению с этим даже си выглядит верхом изящества.
     
     
  • 5.70, Xasd (ok), 17:14, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > по сравнению с этим даже си выглядит верхом изящества.

    ну логочни что ЯП Си сделан для того чтобы на нём писали люди.

    а ASM.JS сделан для того чтобы в него компилировали из Emscripten (а НЕ для того чтобы напрямую на ASM.JS что-то писали люди!).

    > а НЕ для того чтобы напрямую на ASM.JS что-то писали люди!

    если эта фраза не понятна для тебя -- то повторяю: напиши хоть что-то вручную (без Emscripten) на ASM.JS и поймёшь почему я так говорю.


    ASM.JS ---- это по сути лишь просто обычный байткод, но записынный в текстовом виде, а не в бинарном виде.

    > откуда такая истерика-то?

    оттуда что пишут на форумах ерись, называя Asm.Js ---- Яваскриптом, или костылём.

    ************************************************************

    разработчики ASM.JS могли бы запросто сделать чтобы код на ASM.JS был-бы в бинарном виде, а не в текстовом виде как щаз.

    ...но если бы они так сделали -- то это не увеличело бы производительность выполнения (а увеличело бы производительность лишь её инициализации). однако Emscripten в таком случае должен бы был генерировать двойной результат: на Javascript и в бинарном виде ----- И ЭТО БЫЛО БЫ ОЙ КАК ГЛУПО!!

     
     
  • 6.79, arisu (ok), 17:32, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    вот почему как защитник очередных костылей — так даже человеческим языком, на котором пытается писать свою «защиту», и то не владеет нормально, а?
     
  • 3.80, Аноним (-), 17:32, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Лучше бы родили стандарт байткода для generic web browser vm.

    Дык LLVM есть. PnaCL. Но что-то мне кажется что не договрятся.

     
     
  • 4.83, arisu (ok), 17:37, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Лучше бы родили стандарт байткода для generic web browser vm.
    > Дык LLVM есть. PnaCL. Но что-то мне кажется что не договрятся.

    неа. он у LLVM неудобный для написания интерпретаторов. и не очень удобный для трансляции слабо типизированых языков с GC. поэтому LLVM можно использовать как одну из реализаций VM, но завязывать всё на него — неудобно.

     

  • 1.22, Аноним (-), 23:19, 17/07/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Хоть кого то осенило, что недостаточно просто разрабатывать мощное железо чтобы была производительность надо еще и правильно его программировать. А то сейчас часто так: Что то программа тормозит, ай ладно напишу системные требования выше и проблема решена.
     
     
  • 2.27, Crazy Alex (ok), 23:42, 17/07/2013 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Что забавно - осенило одного из людей, стоявших у истоков этой веселой тенденции забивания на качество софта.
     

  • 1.23, anoname (?), 23:30, 17/07/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Слоупок у слоупока украл слоупока.
     
  • 1.29, Dimon (??), 23:46, 17/07/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    пля он сравнивает JavaME и JavaScript
     
  • 1.30, Dimon (??), 23:49, 17/07/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    че мелочится и городить, OpenJDK  интегрируем в браузер и делов то.
     
     
  • 2.53, Аноним (-), 08:27, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Java апплетам в браузере сто лет в обед.
     

  • 1.31, iZEN (ok), 23:55, 17/07/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    > приводит пример достижения приемлемой производительности Java Mobile на телефонах Nokia с экраном 240x320 и 2 Мб ОЗУ.

    J2ME работала в основном в AOT-окружении, с предварительной прекомпиляцией байткода, так как для полноценного JIT нужно довольно много дорогой на мобильных устройствах оперативной памяти.

     
  • 1.63, kb (?), 11:11, 18/07/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Clarification update: For some reason people read this as a rebuttal of Drew Crawford article, it is not. It is merely a response, I accept almost everything he said but have a slightly different interpretation on some of the points.
     
  • 1.67, Adblog (ok), 17:03, 18/07/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Недавно делали реализацию алгоритма RSA-шифрования на JS. Все правильно пишут - JS адский тормоз, на нем нереально добиться нормальной производительности. Впрочем и Java - жуткий тормоз ...
     
     
  • 2.74, Аноним (-), 17:20, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Недавно делали реализацию алгоритма RSA-шифрования на JS. Все правильно пишут - JS
    > адский тормоз, на нем нереально добиться нормальной производительности. Впрочем и Java
    > - жуткий тормоз ...

    Не бывает тормознутых систем. Тормоза бывают лишь между ушей у прокладки между сиденьем и консолью (С) Я

     
     
  • 3.82, Аноним (-), 17:34, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Не бывает тормознутых систем. Тормоза бывают лишь между ушей у прокладки между
    > сиденьем и консолью (С) Я

    Ну да, конечно, только вот почему-то во всяких там кодеках и криптографии до сих пор юзают максимально оптимизированный вручную ассемблер с распоследними наборами команд. Потому что в разы быстрее работает, если горячий кусок так выписать.

     
     
  • 4.85, iZEN (ok), 18:15, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Не бывает тормознутых систем. Тормоза бывают лишь между ушей у прокладки между
    >> сиденьем и консолью (С) Я
    > Ну да, конечно, только вот почему-то во всяких там кодеках и криптографии
    > до сих пор юзают максимально оптимизированный вручную ассемблер с распоследними наборами
    > команд. Потому что в разы быстрее работает, если горячий кусок так
    > выписать.

    Ещё можно вспомнить апплеты "банк-клиент", которые почему-то не используют ассемблер (вот ведь странно), а юзающие алгоритмы на Java.


     
     
  • 5.89, arisu (ok), 18:42, 18/07/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    чем меньше вспоминать банковский софт — тем лучше. а то там и ActiveX были, помнится. тоже мне, вершина технологий.
     
     
  • 6.100, iZEN (ok), 07:45, 19/07/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > чем меньше вспоминать банковский софт — тем лучше. а то там и
    > ActiveX были, помнится. тоже мне, вершина технологий.

    Увлекался COM-объектами? :)) Я тоже в своё время, но быстро понял угрёбищность этого.


     
     
  • 7.103, arisu (ok), 09:25, 19/07/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    изя, ты себе остаток мозга повредил?
     
  • 7.105, Карбофос (ok), 09:56, 19/07/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    мдя. вообще-то, на сколько я понял, подразумевалось совсем другое. раньше светились с завидным постоянством в новостях проблемы с безопасностью ActiveX. причем, некоторые дыры не закрывались месяцами. кто читал в своё время эти новости, тот знает, что ActiveX - одна большая дырень, спроектированная без какого-либо концепта безопасности ПО.
     
     
  • 8.107, arisu (ok), 10:03, 19/07/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а какая может быть вообще с ActiveX безопасность, если там даже песочницы не пре... текст свёрнут, показать
     

  • 1.87, Аноним (-), 18:39, 18/07/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ну да, по сравнению с джава javaScript не такой уж и тормозной
     
  • 1.97, Kodir (ok), 22:38, 18/07/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    ЖабоСкрипт не нужен уже просто за то, что это жабоскрипт. Как тот же ЛИСП или Хацкель - маргинальные уникумы для узкого круга некритичных задач.
    Плюс, сама природа "динамики" - её уже не разогнать ничем. Да и сама опасность узнавать об ошибке только в рантайме - бомба. Оно нам надо??
     
  • 1.114, Аноним (-), 11:46, 22/07/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >> В своей заметке Шай проводит достаточно много аналогий с Java и, в частности, приводит пример достижения приемлемой производительности Java Mobile на телефонах Nokia с экраном 240x320 и 2 Мб ОЗУ.

    оно еще существует?

     

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



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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