URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 90871
[ Назад ]

Исходное сообщение
"Взгляд на производительность JavaScript от одного из разрабо..."

Отправлено opennews , 17-Июл-13 21:04 
Шай Альмог (Shai Almog), один из разработчиков виртуальной машины и JIT-движка для Java, опубликовал (http://www.codenameone.com/3/post/2013/07/why-mobile-web-is-... развёрнутый ответ на недавнюю публикацию (http://www.opennet.me/opennews/art.shtml?num=37421) Дрю Кроуфорда о проблемах JavaScript, мешающих использованию данного языка для создания мобильных приложений. По мнению Шая причина низкой производительности web-приложений в основном связана с особенностью интерфейса DOM (http://ru.wikipedia.org/wiki/Document_Object_Model) (Document Object Model), а не самим языком. Кроме того, высказанные в статье претензии к  сборщику мусора и JIT-компилятору, по мнению Шая, являются ошибочными. В своей заметке Шай проводит достаточно много аналогий с Java и, в частности, приводит пример достижения приемлемой производительности Java Mobile на телефонах Nokia с экраном 240x320 и 2 Мб ОЗУ.


URL: http://www.codenameone.com/3/post/2013/07/why-mobile-web-is-...
Новость: http://www.opennet.me/opennews/art.shtml?num=37442


Содержание

Сообщения в этом обсуждении
"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Аноным , 17-Июл-13 21:04 
Будем делать интерфейсы на канвансе и ВебГЛ.

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Наивный чукотский юноша , 17-Июл-13 21:07 
Ох, /me предчувствует, что слова анонима пророческие.

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Аноним , 17-Июл-13 21:45 
Под канвас и вебгл и для десктопов-то нет нормальных гуй-библиотек. Разве что квадратные кнопочки в блендере.
Если описывать полноценный DOM-аналог для канваса на js - он будет тормозит намного больше чем сам DOM

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


"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Sergey , 17-Июл-13 22:15 
>> Возможности разметки на HTML+CSS+js куда значительнее любого GUI на любом языке

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


"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Sinot , 17-Июл-13 22:20 
У меня даже была шальная мысль попробовать нарисовать веб-приложение (даже не так, приложение в браузере) целиком на канве, но подумал о производительности и сразу охота отпала. Хотя вроде как Qt и GTK именно так и делают.

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Карбофос , 17-Июл-13 23:04 
на Qt3 было достаточно много проблем с отрисовкой, очень многое из проблемного списка было улучшено в Qt4. Но, довольно часто были траблы, когда похабно сделанный signal-slot механизм в исходном коде программы списывался на кривость Qt. Такое видел очень часто.

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Crazy Alex , 17-Июл-13 23:37 
Для канвы хотя бы в принципе есть шанс получить приличное быстродействие, выкинув все что можно в видеокарту, оставив браузеру самый минимум. А с монструозным DOM - ни шанса, так еще и приходится втискиваться в идиотскую браузерную потоковую модель.

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Аноним , 18-Июл-13 02:36 
Да, кстати, работа с DOM самое тормозное, пожалуй.

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Аноним , 17-Июл-13 23:02 
Возразить нечего, я так понимаю?

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Crazy Alex , 17-Июл-13 23:39 
Фишка в том, что для ПРИЛОЖЕНИЯ 99% этих возможностей либо избыточны, либо вообще вредны. А ресурсы на них тратить всё равно приходится. А примитивная и довольно симпатичная кнопочка жила еще в DOS на каком-нибудь 286.

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Аноним , 18-Июл-13 01:40 
Представь себе что на всех сайтах есть только набор сереньких GUI-компонент и больше ничего

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Crazy Alex , 18-Июл-13 01:52 
Для веб-приложения - именно это и нужно.

"Взгляд на производительность JavaScript от одного из..."
Отправлено arisu , 18-Июл-13 07:20 
> Представь себе что на всех сайтах есть только набор сереньких GUI-компонент и
> больше ничего

это было бы просто великолепно. а то МегаДизайнеры задолбали.


"Взгляд на производительность JavaScript от одного из..."
Отправлено Аноним , 18-Июл-13 17:12 
>> Представь себе что на всех сайтах есть только набор сереньких GUI-компонент и
>> больше ничего
> это было бы просто великолепно. а то МегаДизайнеры задолбали.

Linx в зубы. Что-то не слишком-то ты бежишь в голом текстике на мордокнижечке сидеть, а, арису?


"Взгляд на производительность JavaScript от одного из..."
Отправлено arisu , 18-Июл-13 17:28 
> Linx в зубы. Что-то не слишком-то ты бежишь в голом текстике на
> мордокнижечке сидеть, а, арису?

прикинь, я и в графичке туда не бегу. я понимаю, что ты жизни не представляешь без соцсетей, но я — к счастью — не ты.


"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Vkni , 18-Июл-13 09:05 
> Представь себе что на всех сайтах есть только набор сереньких GUI-компонент и
> больше ничего

Ну почему же обязательно серенькие? Можно и синие. :-)

Красивые кнопочки можно отрисовать с любыми ресурсами - это же задача художника. Скажем, многие художники вообще в бинарной палитре работали - гравюры делали. И великолепно получалось. :-)

Есть ряд вполне приятно отрисованных интерфейсов, сделанных в условиях жутких ресурсов - OpenLook, NEXTStep. Да даже MacOS в чёрно-белом варианте не так плоха.


"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Пышпер , 18-Июл-13 09:38 
> Можно и синие

Еретик!


"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Аноним , 18-Июл-13 17:12 
>> Можно и синие
> Еретик!

Трепло он, а не еретик.


"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Аноним , 18-Июл-13 01:43 
На хабре народ в печали что флеш погубили, с его анимированными векторными мувиклипами..
А на опеннете предлагают довольствоваться стандартными визуальными компонентами..

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Crazy Alex , 18-Июл-13 01:53 
Они там вообще красивости много больше любят, чем функциональность.

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Аноним , 17-Июл-13 21:38 
Так уже.

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


"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Карбофос , 17-Июл-13 22:10 
так криворукие программисты и на нём умудрятся сделать так, чтобы работало медленно. ибо у оных принцип: кое-как работает - не трогай. от этого все проблемы гурьбой потом внезапно появляются. здесь на 5% потери производительности забили, там - еще столько же. никто ж не знает, что такое профилировка, етить.

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено all_glory_to_the_hypnotoad , 17-Июл-13 21:08 
> В своей заметке Шай проводит достаточно много аналогий с Java и, в частности, приводит пример достижения приемлемой производительности Java Mobile на телефонах Nokia с экраном 240x320 и 2 Мб ОЗУ.

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


"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Аноним , 17-Июл-13 21:42 
>там то GC скрее всего не было

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

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


"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено all_glory_to_the_hypnotoad , 17-Июл-13 23:01 
> Как же? Ведь память надо как-то освобождать. Не в ручную же.

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


"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Magister , 17-Июл-13 23:42 
> там gc совсем простой, чуть ли не аналог сишного malloc()/free() или в лучшем случае
> питоновского GC со ссылками, который освобождает объект сразу как только можно. GC в яве
> тормозит именно из-за отложенного коллектора, сначала засирает что только можно, а потом
> наступает пц.

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


"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено iZEN , 18-Июл-13 00:02 
> GC в яве тормозит именно из-за отложенного коллектора, сначала
> засирает что только можно, а потом наступает пц.

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



"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Карбофос , 18-Июл-13 00:22 
проверка твоих теоретических умозаключений: сделай парсер, или какой обработчик строк на жабе. будешь сильно удивлён. вот уж во истину, на каждый чих. даже, если соединяешь с константными строками.
просто пичалька, от "глубинных" знаний жабакодеров. и да, как обычно, в своём упорно не замечеют бревна. такая грусть.

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено iZEN , 18-Июл-13 14:24 
> проверка твоих теоретических умозаключений: сделай парсер, или какой обработчик строк
> на жабе. будешь сильно удивлён. вот уж во истину, на каждый
> чих. даже, если соединяешь с константными строками.
> просто пичалька, от "глубинных" знаний жабакодеров. и да, как обычно, в своём
> упорно не замечеют бревна. такая грусть.

Для простейшей операции конкатенации строк в Java (и J2ME) используется оптимизация на уровне компилятора — там, где это возможно и программист специально не извратился (а такое сплошь и рядом случается с обезьянками, которые лучше всех знают что и как), используется практически во всех случаях подстановка класса для работы со строками java.lang.StringBuffer. Это хорошо видно в декомпилируемом классе и в показаниях профилировщика.

Если вы не умеете пользоваться декомпилятором в Java и профилировщиком кода, то продолжайте дальше нести чушь про теоретические умозаключения и соринки в наших глазах.



"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Карбофос , 18-Июл-13 14:52 
ты это серьезно? декомпайлер для жабы, он такой ужасно сложный, прям аж жуть. как раз я и занимался разбором полётов подобных парсеров, логгеров, в том числе и видел, каким образом жабисты извращаются, дабы ускорить процесс обработки строк. так что можешь продолжать и дальше детский лепет на лужайке.
раскрою тебе даже большой секрет, до которого ты никак не можешь допиликать сам: именно из-за геморра с объектами из-за каждого выпука невозможно сделать адекватно работающий, не тормозящий браузер. это как пример.
Sun в свое время по этим же причинам не захотела конвертировать OpenOffice, а IBM свои большие проекты тестирует сначала на джаве, а потом уже конверитует их по своему усмотрению в фортран, плюсы и другие языки.

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Аноним , 18-Июл-13 00:37 
Какой смысл писать на жабе, если всё равно приходится изворачиваться кренделем ради памяти?

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено iZEN , 18-Июл-13 14:28 
> Какой смысл писать на жабе, если всё равно приходится изворачиваться кренделем ради памяти?

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



"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Аноним , 18-Июл-13 17:14 
>> Какой смысл писать на жабе, если всё равно приходится изворачиваться кренделем ради памяти?
> Потому что память в Java — не ресурс. Если его реально не
> хватает, то повышайте скилл Re-Usable Objects и/или докупайте модули памяти. Третьего
> не дано.

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


"Взгляд на производительность JavaScript от одного из..."
Отправлено arisu , 18-Июл-13 17:34 
ну чего ты пристал: изя же рукожоп. а у рукожопа «докупайте памяти, она копейки стоит» — любимый «аргумент».

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Карбофос , 18-Июл-13 18:11 
>Третьего не дано.

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


"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено iZEN , 18-Июл-13 18:17 
>>Третьего не дано.
> ой ли?! портировать программу из жабы на более подходящий для задачи язык программирования.

Портируйте Spring Framework на что-то другое — поговорим.
Напишите NetBeans, Eclipse, IDEA на чём-то другом — обсудим.
Что, кишка тонка и рвётся от малейшего пука?



"Взгляд на производительность JavaScript от одного из..."
Отправлено arisu , 18-Июл-13 18:41 
это да: таких тормозных удолбищ, как eclipse, например — ещё поискать. авторы Qt на это всё посмотрели — и сделали QtCreator.

а если уж говорить про «кишки», изенька, то один emacs все ваши жабоподелки уделывает влёт.


"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Карбофос , 18-Июл-13 19:16 
если бы этим проектам не было бы адекватной альтернативы, их бы давно уже портировали. а для меня лично, так я не хочу, чтобы какой-то IDE откушивал под 2 гига памяти. не могу себе позволить, т.к. на работе в основном память под виртуалки уходит, для тестирования, а дома для моих проектов старенького лептопа хватает, на котором только 2 гига памяти. и ничего, для браузера, кедов и KDevelop хватает и в своп не лезет. прикинь?

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено iZEN , 19-Июл-13 07:41 
У меня SWAP'а вообще нету и не жужжу. 8 ГБ, ZFS — полёт нормальный.

"Взгляд на производительность JavaScript от одного из..."
Отправлено arisu , 19-Июл-13 09:24 
> и не жужжу

единственное полезное дело, которое ты мог бы совершать, и то…


"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Карбофос , 19-Июл-13 10:03 
и что? предмет гордости, или предлагаешь мне на моём домашнем лептопе с двумя гигами своп вырубить и тоже начать гордиться?

"Взгляд на производительность JavaScript от одного из..."
Отправлено arisu , 19-Июл-13 10:04 
> и что? предмет гордости, или предлагаешь мне на моём домашнем лептопе с
> двумя гигами своп вырубить и тоже начать гордиться?

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


"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено iZEN , 19-Июл-13 12:51 
> и что? предмет гордости, или предлагаешь мне на моём домашнем лептопе с
> двумя гигами своп вырубить и тоже начать гордиться?

Ни для кого не секрет, что SWAP придуман для того, чтобы "эмулировать" дополнительный объём оперативной памяти, когда приобрести модули ОЗУ выходит очень дорого или невозможно в принципе — конструктивно или ещё по каким-либо причинам. Плата за это — низкая скорость обмена данными с более медленными устройствами (HDD, SSD), чем микросхемы ОЗУ.

Гордится тем, что у тебя есть SWAP такого же объёма, что и оперативка (2 ГБ), незачем. Это констатирует лишь то, что задачам вполне хватает выделенного объёма оперативной памяти, а в какую-то часть времени приходится мириться с тормозами и замедлением ответной реакции системы. Ежели SWAP создан для того, что так советуют умудрённые опытом специалисты в учебниках 1990-х годов по организации виртуальной памяти, то гордиться "задним умом" забавно.



"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено труляляй , 20-Июл-13 00:24 
изька, зачем ты тут рассказываешь про своп? тебе больше рассказать нечего?

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Карбофос , 21-Июл-13 20:41 
кто тебе сказал вообще, что я использую своп такого же объема, что оперативка? ты часто показываешь примитивность своего мышления. что наводит на мысли про "задний ум" относятся к тебе, а не ко мне.

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Аноним , 18-Июл-13 02:42 
> Правильно — бывшие программеры C/C++, которым привычные malloc()/free() использовать
> тут не дали, а всучили убогий "ручник" сломанного "стопкрана" System.gc(). :)))

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

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

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



"Взгляд на производительность JavaScript от одного из..."
Отправлено arisu , 18-Июл-13 07:24 
> Ну а кто, спрашивается, насоздаёт короткоживущих объектов на «каждый чих», а потом
> не знает как их повторно использовать и надеется на уборку мусора?

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

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


"Взгляд на производительность JavaScript от одного из..."
Отправлено Аноним , 18-Июл-13 17:17 
>> Ну а кто, спрашивается, насоздаёт короткоживущих объектов на «каждый чих», а потом
>> не знает как их повторно использовать и надеется на уборку мусора?
> так кто же виноват, что в жабе сборщик настолько хреновый?
> (хотя, конечно, он там не один, и не хреновые они, просто пишут
> на жабе вот такие вот изи — и получается г о в н о).

Х р е н о в ы й не сборщик. Х р е н о в ы е рукосуи, которые пишут программы. Каждый дятел....

Приведу один пример. Я несколько лет назад видел прикладу, разработанную на BPEL - слыхал? - которая за 7 минут работы после рестарта сервера на линухе умудрялась скушать 14 (!) Гб оперативы и сдохнуть. Почему? Потому что программер (в данном контексте слово означает сексуальную ориентацию) Костя Шакалов не знал, что надо вызывать сборщик мусора (один из трех, имеющихся в наличии, кстати говоря) и не посчитал это необходимым - при таком изобилии свежести^Wпамяти всего в двух калориях^Wтирах системы. Ачо, плашка памяти ж как лопата дерьма стоит, фуле! Память - не ресурс!


"Взгляд на производительность JavaScript от одного из..."
Отправлено Аноним , 18-Июл-13 17:30 
> Шакалов не знал, что надо вызывать сборщик мусора (один из трех,
> имеющихся в наличии, кстати говоря)

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


"Взгляд на производительность JavaScript от одного из..."
Отправлено arisu , 18-Июл-13 17:31 
если сборщик мусора надо явно вызывать — это не язык, а дерьмо. впрочем, практика показывает, что если в названии чего-то софтового есть «bussines» — то это дерьмо с вероятностью, близкой к единице.

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Аноним , 18-Июл-13 08:04 
Вы хоть Макконнелла почитайте для общего развития, что ли, прежде, чем чушь пороть. Программы пишутся - в том числе и для людей, а не только для машин. Короткая жизнь объёкта - это во многом то, что борется с кашей в голове. А то, что жаба это переваривает с трудом - так это проблема жабы и её мусорки.

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Vkni , 18-Июл-13 09:08 
> А то, что жаба
> это переваривает с трудом - так это проблема жабы и её
> мусорки.

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


"Взгляд на производительность JavaScript от одного из..."
Отправлено arisu , 18-Июл-13 09:14 
> Там нет выделения на стеке, прекрасно приспособленного для короткоживущих объектов.

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

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


"Взгляд на производительность JavaScript от одного из..."
Отправлено Vkni , 18-Июл-13 09:55 
Твой нелюбимый Куздра об этом недостатке Java как-то рассказывал, но где - не помню.

"Взгляд на производительность JavaScript от одного из..."
Отправлено arisu , 18-Июл-13 10:12 
> Твой нелюбимый Куздра об этом недостатке Java как-то рассказывал, но где —
> не помню.

этому товарищу доверие нулевое вообще, он феерически некомпетентен. проверять каждое его утверждение на предмет «а где он в этот раз накосячил» — мне откровенно лень.


"Взгляд на производительность JavaScript от одного из..."
Отправлено arisu , 18-Июл-13 09:18 
p.s. другое дело, что для GC неплохо бы иметь несколько больше помощи от MMU, чем сейчас предоставляется через API, но это уже совсем другая песня. ребята из Azul Systems, например, показали, что при некоторой поддержке GC становится сильно легче жить.

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Аноним , 18-Июл-13 17:18 
> Вы хоть Макконнелла почитайте для общего развития, что ли, прежде, чем чушь
> пороть. Программы пишутся - в том числе и для людей, а
> не только для машин. Короткая жизнь объёкта - это во многом
> то, что борется с кашей в голове. А то, что жаба
> это переваривает с трудом - так это проблема жабы и её
> мусорки.

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


"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Аноним , 18-Июл-13 17:32 
> Еще раз - это проблема не среды. Это проблема п и д
> о р а^Wп р о г р а м м и с т о в.

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


"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено iZEN , 18-Июл-13 19:19 
> Остальные на ней пишут "как изен".

Смеёшься что ли?

Я привёл прямо противоположную историю о тех бывших C/C++ программистах, которые привыкли на каждый чих делать malloc()/free() в своих "сишечках", а потом пересели на Java с розовой надеждой на автоматику управления жизненным циклом объектов.

С таким отношением, естественно, скоро наступает песец и большое удивление на тему "куда это подевалась свободная память?!". Лихорадочно начинают дёргать ручник сломанного стоп-крана System.gc() в надежде на то, что JVM за них приберёт ИХ_ЖЕ мусор, который они бездумно наплодили в циклах и связали с долгоживущими объектами кучей ссылок.

Ага — щаз.


"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Карбофос , 18-Июл-13 19:56 
> о тех бывших C/C++ программистах, которые привыкли на каждый чих делать malloc()/free() в своих "сишечках", а потом пересели на Java с розовой надеждой на автоматику управления жизненным циклом объектов.

какая-то невероятно неправдоподобная история. есть такая вещь, называется "сила привычки", так вот, если это действительно не жопорукие кодеры, то они бы и на джаве продолжали бы использовать подобные механизмы, как malloc/free: вызывать деструкторы объектов, когда они уже не нужны. в общем, нестыковка какая-то, нонсенс. сам историю выдумал?


"Взгляд на производительность JavaScript от одного из..."
Отправлено arisu , 18-Июл-13 19:58 
> сам историю выдумал?

а то. изя же говнокодер, причём говнокодер, который не знает ни одного языка нормально. иначе до него бы дошло, что те, кто «постоянно дёргают» — никак не могли наплодить якорей на автоматические объекты, потому что привычка чистить перед free() вырабатывается потом, кровью и болью. и потому такой программер на автомате вместо free() писал бы '= null' какое-нибудь.


"Взгляд на производительность JavaScript от одного из..."
Отправлено Карбофос , 18-Июл-13 20:04 
>привычка чистить перед free() вырабатывается потом, кровью и болью

так вот об чем и речь. или, может это джава так пагубно влияет, что люди явно дегенерировать начинают :-D


"Взгляд на производительность JavaScript от одного из..."
Отправлено arisu , 18-Июл-13 20:12 
да нет, я изю много лет знаю (думаю, больше десяти), и не только по этому ресурсу. тут дело такое: он сначала был дурак, а потом увлёкся жавой. а не наоборот. :3

"Взгляд на производительность JavaScript от одного из..."
Отправлено Карбофос , 18-Июл-13 22:46 
не, я не про него, а про его полёт фантазии, в которой бывшие программисты сей и плюсей дружно понадеялись на мегакрутую фичу жабы - автоматический мусоросборщик.

"Взгляд на производительность JavaScript от одного из..."
Отправлено arisu , 19-Июл-13 09:23 
есть подозрение, что это отголоски его личного неприятного опыта.

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Аноним , 17-Июл-13 21:28 
Одно лучше другого,
Лучше бы что то типа Dart увидеть прям в ядре браузера

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Аноним , 17-Июл-13 21:29 
http://www.dartlang.org/
http://golang.org/

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Аноним , 17-Июл-13 21:30 
> Одно лучше другого,
> Лучше бы что то типа Dart увидеть прям в ядре браузера

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


"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Xasd , 18-Июл-13 01:46 
> https://docs.google.com/presentation/d/1zfucLA3XNqRb7W56ldU_...

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

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

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

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

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


"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Аноним , 18-Июл-13 02:17 
>> это можно реализовать -- даже и с существующим синтаксисом ECMAScript:

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


"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Аноним , 17-Июл-13 21:40 
Лучше бы родили стандарт байткода для generic web browser vm. Не смогли договориться об интерфейсах в различных аппаратно-софтенных платформах, отрыгните хотя бы для браузеров. Нет, млин, будем костылять через конверторы c/c++ в js, лить эту беду по http и хвастаться какой у нас реализован расклиздатый jit

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Sinot , 17-Июл-13 22:23 
> Лучше бы родили стандарт байткода для generic web browser vm.

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


"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Аноним , 17-Июл-13 22:28 
Похоже что оно. Вива ля Гугл?

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено all_glory_to_the_hypnotoad , 17-Июл-13 23:02 
нет, это совсем не оно. NaCl это нативный код.

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Crazy Alex , 17-Июл-13 23:41 
Они PNaCl допилили, там именно байткод. Да и какая разница, байткод или натив - лишь бы были стандартные соглашения по вызовам.

"Взгляд на производительность JavaScript от одного из..."
Отправлено arisu , 18-Июл-13 07:26 
> Да и какая разница, байткод или натив

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


"Взгляд на производительность JavaScript от одного из..."
Отправлено мшефд , 18-Июл-13 10:41 
_P_NaCl - уже LLVM.

"Взгляд на производительность JavaScript от одного из..."
Отправлено arisu , 18-Июл-13 10:55 
> _P_NaCl — уже LLVM.

я рад за него. а за тебя — нет: ты не умеешь читать то, на что отвечаешь.


"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Xasd , 18-Июл-13 02:17 
>> Лучше бы родили стандарт байткода для generic web browser vm.
> Так вроде NaCl оно и есть, правда пока только у Google и
> не стандарт.

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

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

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

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


"Взгляд на производительность JavaScript от одного из..."
Отправлено arisu , 18-Июл-13 07:27 
> Asm.Js ---- является намного более безкостыльное решение чем NaCL/PNaCl .

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


"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Xasd , 18-Июл-13 02:24 
> Нет, млин, будем костылять через конверторы 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-шифрования. (в этом случае тоже можно задействовать массивы и указатели на функции).

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


"Взгляд на производительность JavaScript от одного из..."
Отправлено arisu , 18-Июл-13 07:29 
откуда такая истерика-то? я читал предварительные спеки этих мегакостылей ещё до того, как тебе в новостях о них рассказали. родилось мегакостылями и осталось мегакостылями. по сравнению с этим даже си выглядит верхом изящества.

"Взгляд на производительность JavaScript от одного из..."
Отправлено Xasd , 18-Июл-13 17:14 
> по сравнению с этим даже си выглядит верхом изящества.

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

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

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

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


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

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

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

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

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

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


"Взгляд на производительность JavaScript от одного из..."
Отправлено arisu , 18-Июл-13 17:32 
вот почему как защитник очередных костылей — так даже человеческим языком, на котором пытается писать свою «защиту», и то не владеет нормально, а?

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Аноним , 18-Июл-13 17:32 
> Лучше бы родили стандарт байткода для generic web browser vm.

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


"Взгляд на производительность JavaScript от одного из..."
Отправлено arisu , 18-Июл-13 17:37 
>> Лучше бы родили стандарт байткода для generic web browser vm.
> Дык LLVM есть. PnaCL. Но что-то мне кажется что не договрятся.

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


"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Аноним , 17-Июл-13 23:19 
Хоть кого то осенило, что недостаточно просто разрабатывать мощное железо чтобы была производительность надо еще и правильно его программировать. А то сейчас часто так: Что то программа тормозит, ай ладно напишу системные требования выше и проблема решена.

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Crazy Alex , 17-Июл-13 23:42 
Что забавно - осенило одного из людей, стоявших у истоков этой веселой тенденции забивания на качество софта.

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено anoname , 17-Июл-13 23:30 
Слоупок у слоупока украл слоупока.

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Dimon , 17-Июл-13 23:46 
пля он сравнивает JavaME и JavaScript

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Dimon , 17-Июл-13 23:49 
че мелочится и городить, OpenJDK  интегрируем в браузер и делов то.

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Аноним , 18-Июл-13 08:27 
Java апплетам в браузере сто лет в обед.

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено iZEN , 17-Июл-13 23:55 
> приводит пример достижения приемлемой производительности Java Mobile на телефонах Nokia с экраном 240x320 и 2 Мб ОЗУ.

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


"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено kb , 18-Июл-13 11:11 
> 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.

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Adblog , 18-Июл-13 17:03 
Недавно делали реализацию алгоритма RSA-шифрования на JS. Все правильно пишут - JS адский тормоз, на нем нереально добиться нормальной производительности. Впрочем и Java - жуткий тормоз ...

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Аноним , 18-Июл-13 17:20 
> Недавно делали реализацию алгоритма RSA-шифрования на JS. Все правильно пишут - JS
> адский тормоз, на нем нереально добиться нормальной производительности. Впрочем и Java
> - жуткий тормоз ...

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


"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Аноним , 18-Июл-13 17:34 
> Не бывает тормознутых систем. Тормоза бывают лишь между ушей у прокладки между
> сиденьем и консолью (С) Я

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


"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено iZEN , 18-Июл-13 18:15 
>> Не бывает тормознутых систем. Тормоза бывают лишь между ушей у прокладки между
>> сиденьем и консолью (С) Я
> Ну да, конечно, только вот почему-то во всяких там кодеках и криптографии
> до сих пор юзают максимально оптимизированный вручную ассемблер с распоследними наборами
> команд. Потому что в разы быстрее работает, если горячий кусок так
> выписать.

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



"Взгляд на производительность JavaScript от одного из..."
Отправлено arisu , 18-Июл-13 18:42 
чем меньше вспоминать банковский софт — тем лучше. а то там и ActiveX были, помнится. тоже мне, вершина технологий.

"Взгляд на производительность JavaScript от одного из..."
Отправлено iZEN , 19-Июл-13 07:45 
> чем меньше вспоминать банковский софт — тем лучше. а то там и
> ActiveX были, помнится. тоже мне, вершина технологий.

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



"Взгляд на производительность JavaScript от одного из..."
Отправлено arisu , 19-Июл-13 09:25 
изя, ты себе остаток мозга повредил?

"Взгляд на производительность JavaScript от одного из..."
Отправлено Карбофос , 19-Июл-13 09:56 
мдя. вообще-то, на сколько я понял, подразумевалось совсем другое. раньше светились с завидным постоянством в новостях проблемы с безопасностью ActiveX. причем, некоторые дыры не закрывались месяцами. кто читал в своё время эти новости, тот знает, что ActiveX - одна большая дырень, спроектированная без какого-либо концепта безопасности ПО.

"Взгляд на производительность JavaScript от одного из..."
Отправлено arisu , 19-Июл-13 10:03 
а какая может быть вообще с ActiveX безопасность, если там даже песочницы не предусмотрено изначально? а учитывая, что в XP юзер ещё и локальный администратор… заходи кто хочешь, бери что надо. жабка хоть изначально в песочницу посажена (пусть в песочнице и находят дырки, но тем не менее).

что, как я выше писал, не мешало банкам вовсю ActiveX использовать (а кое-кто, по слухам, и до сих пор…). и я намекал на то, что «а банки используют» — вообще никакой не аргумент и ничего не доказывает.


"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Аноним , 18-Июл-13 18:39 
Ну да, по сравнению с джава javaScript не такой уж и тормозной

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Kodir , 18-Июл-13 22:38 
ЖабоСкрипт не нужен уже просто за то, что это жабоскрипт. Как тот же ЛИСП или Хацкель - маргинальные уникумы для узкого круга некритичных задач.
Плюс, сама природа "динамики" - её уже не разогнать ничем. Да и сама опасность узнавать об ошибке только в рантайме - бомба. Оно нам надо??

"Взгляд на производительность JavaScript от одного из разрабо..."
Отправлено Аноним , 22-Июл-13 11:46 
>> В своей заметке Шай проводит достаточно много аналогий с Java и, в частности, приводит пример достижения приемлемой производительности Java Mobile на телефонах Nokia с экраном 240x320 и 2 Мб ОЗУ.

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