Разработчики Mozilla сообщили (https://hacks.mozilla.org/2018/01/making-webassembly-even-fa.../) о включении в состав Firefox 58, релиз которого ожидается на следующей неделе, нового компилятора, который обеспечивает компиляцию промежуточного кода WebAssembly в 10-15 раз быстрее, чем используемый до этого оптимизирующий компилятор.
На типовой рабочей станции скорость компиляции кода WebAssembly достигает 30-60 Мб в секунду, а на мобильном устройстве 8 Мб в секунду, что быстрее, чем пропускная способность большинства сетей. Второй особенностью нового компилятора является возможность компиляции кода по мере его загрузки. В сочетании с высокой скоростью компиляции данная особенность позволяет получать готовый код почти сразу после окончания загрузки, так как большая часть кода успевает скомпилироваться во время загрузки кода.
Потребность в компиляции по мере загрузки возникла при появлении WebAssembly, так как для обычного JavaScript операции парсинга требуют заметных ресурсов, а псевдокод WebAssembly значительно проще для декодирования и компактнее (требует передачи меньшего объёма по сети для реализации аналогичной функциональности). Ранее параллельно с загрузкой JavaScript осуществлялся парсинг, который выполнялся в параллельном потоке и формировал готовый для компиляции код к моменту окончания загрузки JavaScript, но компиляция производилась после завершения разбора.В WebAssembly готовность для компиляции наступает значительно раньше, а фазы декодирования и компиляции могут быть разделены на отдельные потоки. Более того, компиляция может завершиться даже раньше окончания загрузки файла wasm, так как секция с кодом в модуле расположена раньше секции с данными, и псевдокод успевает скомпилироваться ещё когда секция данных продолжает загружаться.
Суть двухуровневого компилятора заключается в наличии двух фаз: baseline, в которой приоритет отдаётся скорости компиляции в ущерб качеству оптимизации, и оптимизирующая фаза, которая выполняется достаточно медленно, но выдаёт хорошо оптимизированный код. В частности, baseline-компиляция выполняется в 10-15 раз быстрее, но генерирует код, работающий примерно в два раза медленнее.
В процессе компиляции вначале применяется baseline-стадия, которая быстро формирует готовый для исполнения код. Далее данный код запускается, а параллельно начинает работать оптимизирующая стадия компилятора, которая формирует улучшенный и более быстрый вариант кода, который после готовности заменяет собой предложенный на первой стадии код.
Для WebAssembly и JavaScript метод вызова оптимизирующей стадии сильно отличается. Для JavaScript вторая стадия запускается спустя какое-то время после начала выполнения кода, лишь после того как накопиться определённая статистика о характере выполнения и типах данных. В WebAssembly вся необходимая информация уже имеется в псевдокоде, поэтому нет смысла затягивать с выполнением второй фазы, и, как следствие, оптимизированный код быстрее замещает собой первоначальный черновой код.
Компиляция на второй стадии выполняется в отдельном потоке, параллельно с работой кода web-приложения. Для ускорения данной стадии в новом движке Firefox осуществляется распараллеливание на уровне компиляции отдельных функций, которое позволяет разнести компиляцию на несколько потоков и задействовать все простаивающие ядра CPU. Для ещё большего ускорения работы компилятора планируется добавить систему кэширования, которая при повторном выполнении wasm-файлов позволит сразу использовать уже ранее скомпилированный и сохранённый в кэше код. Поддержка кэширования байткода (https://blog.mozilla.org/javascript/2017/12/12/javascript-st.../) JavaScript будет представлена в Firefox 58, но кэширование итогового машинного кода будет реализовано в одном из дальнейших выпусков.URL: https://hacks.mozilla.org/2018/01/making-webassembly-even-fa.../
Новость: https://www.opennet.ru/opennews/art.shtml?num=47930
Вебассембли - это ящик Пандоры. Зря они его открыли.
Веб - это ящик Пандоры. Зря они его открыли.
Компьютер - это ящик Пандоры. Зря они его включили.
Вообще, Веб изначально был только для показа страничек с информацией, что хорошо и полезно, потому что был сделан людьми, для людей. С появлением жабоскрипта вебмакаки разучились писать на html, понаписали кучу фреймворков для написания фреймворков. А Вебассембли уже ничего общего не имеет с изначальной идеей веба. Он троянский конь.
А потом непонятно на каком url находится документ. Url будто нет. Только последовательность действий. Может кодировать состояние всего в url?
А зачем он тебе?
Если это Rich Web Application, то урлы и не нужны - ты же не пытаешься получить урл на окошко в десктопной аппликухе и скинуть в личку на вконтактик другу.Оставь уже эти привычки из веба 1.0 и не мешай прогрессу.
А зачем вы засртали всё ричапликейшонами? Ведь каждый сайт теперь клепается этими ричапликейшонистами, которые не умеют простую картинку на страничке разместить без кучи скриптов, которые зависят от левых людей и пропускают через мой компьютер пол интернета для обеспечения себе кликов, моей персональной информации и майненья биткоинов на моей (пользователя) системе.
> ... А Вебассембли уже ничего общего не имеет с изначальной идеей
> веба. Он троянский конь.АсtivеХ...((
любая технология сейчас это ящик пандоры... явы, флэши, вэбассембли, скрипты и всё прочее...
если кто-то нервничает - всегда есть опция поработать в офлайне
> всегда есть опция поработать в офлайнеИ то не всегда.
Да. И тут ничего нового: в очередной раз поменяли новые возможности на новые страхи.
ты просто ящикофоб
> ящикофобновый хоррор - Nintendo Labo
https://www.youtube.com/watch?v=P3Bd3HUMkyU
>> ящикофоб
> новый хоррор - Nintendo Labo
> https://www.youtube.com/watch?v=P3Bd3HUMkyUЧто нам стоит дом построить, нарисуем будем жить ;)
Да, теперь картонного мусора прибавится, ну ничего зато туалетной бумаги станет больше. А что бы ни тем, ни тем не "париться", необходимо перебираться жить в виртуальную реальность :(
WebAssembly - выпустили год назад на волю, только никому не нужен он. Какие языки в него компилируются?
C, C++, Rust, Go, Java, C#, OCaml, TypeScript(AssemblyScript)
Из статьи ясно, что и js и WebAssembly компилируются в один и тот же байт код. Или отдаются на исполнение одной и той же машине. Так объясните мне причем тут ящик Пандоры?
я объясню: веб макака испугалась байткода, ведь он такой непривычный и страааааашный!p.s. А обычного JS почему-то не пугается, хотя современный JS выглядит вот так (из боевого проекта):
case 63: {
$1720 = HEAP8[$303>>0]|0;
$1721 = $1720&255;
$1722 = (((($2)) + 24|0) + ($1721<<2)|0);
$1723 = HEAP32[$1722>>2]|0;
$1724 = $1723 & 126;
$1725 = ($1724|0)==(2);
if (!($1725)) {
label = 318;
break L2;
}
$1726 = $1723 >>> 8;
$1727 = ((($ip$0$i)) + 2|0);
$1728 = HEAP8[$1727>>0]|0;
$1729 = $1728&255;
$1730 = (((($2)) + 24|0) + ($1729<<2)|0);
$1731 = HEAP32[$1730>>2]|0;
$1732 = ((($ip$0$i)) + 3|0);
$1733 = HEAP8[$1732>>0]|0;
$1734 = $1733&255;
$1741 = HEAP32[$1740>>2]|0;
$switch$split2D = ($1726|0)<(1201);
L318: do {
if ($switch$split2D) {
switch ($1726|0) {
case 1200: {
label = 346;
break L2;
break;
}
Ребята, вы так однажды сломаете Матрицу.
Так js в виде байткода выглядит?
Миниикация и обфускация.
>Миниикация и обфускацияМне уже икается.
Это явно что-то более высокоуровневое, "скомпилированное" в JS. Что именно — не рискну гадать.
это asm.js
Полон опасностей и чевототам Вебасембли-мирок
Ты чё лутбоксы не любишь ?
> все простаивающие ядра CPUИнтересно, а firefox обращается к ОС, чтобы определить что ядра простаивают?
Или как обычно, каждая программа считает что "уж мы-то самые умные, мы воспользуемся многопоточностью", и в результате они "толкаются локтями" на каждом ядре и вся система работает медленнее чем могла бы, если каждый одно ядро использовал?
Скорее всего, ничего они не определяют, а просто рожают количество потоков равное количеству логических процессоров - а там пускай оська пыхтит.
Судя по https://i.imgur.com/4TFS0u2.png в офисе и аналогичную загрузку на бубунте дома, как раз второе
Отключи шиндоус апдейт.
Спомощью обновлений мастдай регулирует численность своих юзверей
Во первых он тут ни при чём
Во вторых он отключен
Если оперативы съедено дофига именно FF, то топчется у вас GC(сборщик мусора).
А вообще на какой версии это, сколько вкладок и сколько оперативы съедено?
Версия 57.0.4, вкладок было штук 15-20, оперативы уже точно не скажу, но FF был в топе по поеданию ОЗУ и проца. Лечится только перезапуском FF раз в сутки-двое. Дома 16Гб ОЗУ, там можно неделю не перезапускать, но симптомы те же, хоть и Linux.
Проверьте аддоны. У вас куда-то утекает память. Когда FF отъедает какое-то количество памяти(не знаю точных критерий) GC начинает сходить сума по крайней мере у меня так было до 57 FF ногда.(смотрел через инспектор процессов и основным обжорой там был поток который высвечивался как *GC*)
То есть GC в попытках освободить память постоянно искал что удалить(как я понимаю). Лечилось именно перезапуском и симптомом было сожранное большое количество памяти.
> Проверьте аддоны. У вас куда-то утекает память. Когда FF отъедает какое-то количество
> памяти(не знаю точных критерий) GC начинает сходить сума по крайней мере
> у меня так было до 57 FF ногда.(смотрел через инспектор процессов
> и основным обжорой там был поток который высвечивался как *GC*)
> То есть GC в попытках освободить память постоянно искал что удалить(как я
> понимаю). Лечилось именно перезапуском и симптомом было сожранное большое количество памяти.Это он (GC) в "Корзину" превратился. А что, сейчас удалишь, а через мгновение (по "Закону Подлости") понадобится. Так что срочно необходим еще один процесс "Корзино-очиститель" ;)
ознакомьтесь с концепцией работы многоядерных систем, толкание локтями это оптимальная стратегия в общем случае.
Осталось добавить,по каким критериям оптимальная. По общей вычислительной мощи - ну да. По комфорту для пользователя - не факт. Например, если FF загрузил все ядра вусмерть, как браузеры любят делать, а я внезапно полез что-то ещё запускать, то комфорта не будет. Но они, конечно, исходят из предположения, что пользователь только в браузере сидит - и даже не так уж неправы для среднего случая.
С той лишь разницей, что раньше FF если уж жрал, то жрал одно ядро, а теперь все. И съедание ОЗУ возрасло соответственно.
Именно
> ознакомьтесь с концепцией работы многоядерных систем, толкание локтями это оптимальная
> стратегия в общем случае.в данном случае просто единственная
Нет, сейчас просто из всего делают операционную систему, считая, что все ресурсы - для их приложения. Поэтому вашему аудиоплееру надо спросить у браузера разрешение на проигрывание, но это потому что вы не пользуетесь онлайн проигрывателем.
man nice
Ого, скоро почти JVM будет, правда еще много решений остается скопировать из мира Java.
Я мечтал о быстром и компактном вебе, а вы java вспоминаете.
Хм, и в каждую новость прибегает кто-то, вообще не догоняющий, что такое WebAssembly, и выдаёт эту чушь.Это не JVM, а гораздо более низкоуровневая ВМ, которая, соответственно, даёт больше возможностей.
>Это не JVM, а гораздо более низкоуровневая ВМ, которая, соответственно, даёт больше возможностей..NET?
Не знаю, я архитектурой и опкодами дотнета не интересовался. Из того, что знаю (вот эти смеси c# кода, managed и unmanaged c++) полагаю, что там гибрид какой-то.А WebAssembly - это, фактически, типизированный ассемблер, очень легко транслирующийся в реальные машинные инструкции.
> А WebAssembly - это, фактически, типизированный ассемблер, очень легко транслирующийся в реальные машинные инструкции.Тогда чем он отличается от байт-кода явы?
Сравни наборы опкодов сам, а? Навскидку - опкоды джавы вообще не предусматривают вызов свободной функции, только метода, и работы с указателями нет.
> Сравни наборы опкодов сам, а?Одна машина регистровая, а другая стековая - может по такому критерию сравнивать?
> Навскидку - опкоды джавы вообще не предусматривают вызов свободной функции, только метода, и работы с указателями нет.
Это всё условности. Уж сколько вызовов в Java совершается статических методов финальных классов без объектов и без состояния, что это в порядке вещей.
LLVM ассемблер?
почему у фф дальше слов дела не идут? тут оптимизируют, сям оптимизируют. А все равно тормозит. От гугла новостей об оптимизации никаких, а все равно летает и вообще "просто работает".
> От гугла новостей об оптимизации никакихhttps://v8project.blogspot.ru/ и чейнджлоги браузера
Только из криокамеры вылез? 57-я летает.
без расширений-то? удивительное дело
Давай результаты сравнения, потому что субъективно на моем рабочем ноутбуке последняя версия FF летает, а хром тормозит и даже стартует с ощутимой задержкой.
А я инопланетян видел.
Как я тебя понимаю, сам мучался на дебиановской версии FF, а потом вдруг поставил 57-ую, и решил ещё профиль закинуть на SSD, вуаля.
для износа SSD? Не проще поставить галочку "не сохранять историю"?
Зачем? Там даже и кэш для ускорения.
Или может ещё предложите выключить комп из сети, что бы и все остальные детали не изнашивались?
Я для того SSD и купил, что бы юзать с комфортом, а не беречь его от работы, для которой он и предназначен.
> Зачем? Там даже и кэш для ускорения.
> Или может ещё предложите выключить комп из сети, что бы и все
> остальные детали не изнашивались?
> Я для того SSD и купил, что бы юзать с комфортом, а
> не беречь его от работы, для которой он и предназначенне уверен, что страницы из сети будут грузится медленнее,чем из кеша, даже в случае SSD. Ни кешированым страницам, ни кукам-суперкукам просто нечего делать на диске! Это кроме износа деталей уменьшает также приватность и безопасность!
А зачем вопросом зааваться. Жмите Ctrl+F5(релоад с сбросом кеша, вся страница из сети). И знаете что получите, а получите что простой релоад грузит страницу незаметно фактически, а с сбросом кеша заметна прогрузка. Но это если у вас не Celeron какой-нибудь. Там своя атмосфера.
А память зачем купил? Используй для профиля.
Эх, ламера...
Я просто оставлю это здесь: https://wiki.gentoo.org/wiki/SSD#XDG_cache
> для износа SSD? Не проще поставить галочку "не сохранять историю"?тогда и noatime надо
relatime
> relatimeВсё равно ж запишет, ведь я не из-за электричества, а из-за срока жизни твердотельного устр-ва хранения.
На настолке/наколенке уж рискну неработой чего-то без atime.
Из наколенки, кстати, я достаточно давно изъял механику (кроме вентилятора, понятно) и ставлю тривиальные SD. Вот им noatime ещё как нужен.
relatime пишется либо когда и так идёт апдейт инода, либо с интервалом, больше/равным указанному (обычно 1 день). По факту - нагрузка примерно нулевая с ним.Впрочем, может с SD всё совсем печально, не знаю.
> relatime пишется либо когда и так идёт апдейт инода, либо с интервалом,
> больше/равным указанному (обычно 1 день). По факту - нагрузка примерно нулевая
> с ним.
> Впрочем, может с SD всё совсем печально, не знаю.Мне говорят (продавцы), что современные SSD исполнения и карточки по жизнеспособности равнозначны. Пусть уж не трогают atime вовсе. Ни разу ни одна прога не жаловалась. ))
Продавцы ещё не то скажут. Тем не менее в карточке:
1) нет DRAM-кеша
2) нет сколько-нибудь вменяемого контроллера (ни технические параметры, ни стоимость не дадут его туда засунуть)
3) флёш идёт по остаточному принципу.Поэтому вполне вероятно, что там вам действительно надо прибегать к подобным ухищрениям.
P.S. А ещё там SMART нет, и когда оно там умрёт или уже начало - вы не узнаете.
> Продавцы ещё не то скажут. Тем не менее в карточке:
> 1) нет DRAM-кеша
> 2) нет сколько-нибудь вменяемого контроллера (ни технические параметры, ни стоимость не
> дадут его туда засунуть)
> 3) флёш идёт по остаточному принципу.Согласен, иначе бы и не интересовался более совершенным конструктивом.
С другой стороны, простота решения, конечно, соблазняет.
Ну, и отказ всегда (в моих случаях) случается на запись. Его видно, и наработанного я не лишаюсь.
Опять-таки, флэшка из гнезда -- и кража лаптопа становится менее неприятным событием, чем в ином случае.> Поэтому вполне вероятно, что там вам действительно надо прибегать к подобным ухищрениям.
С современными вариантами live систем для стиков мне даже ухищряться не нужно, как раньше.
> P.S. А ещё там SMART нет, и когда оно там умрёт или
> уже начало - вы не узнаете.Вот это было бы весомо, но сколько уж раз я припонадеялся на этот SMART. Может, в наше время от него уже есть толк.
Читал о такой рекомендации: на SSD размечать (сплошным куском, разумеется) не более 2/3 всего доступного места, прочее вообще не трогать. Тогда, якобы, контроллер будет ячейками из оставленных без использования постепенно замещать поломанные.
> Читал о такой рекомендации: на SSD размечать (сплошным куском, разумеется) не более
> 2/3 всего доступного места, прочее вообще не трогать. Тогда, якобы, контроллер
> будет ячейками из оставленных без использования постепенно замещать поломанные.Опять-таки, может в современных реализациях это и работает. В прежних - шиш.
Износ SSD у вас будет быстрый если он забид под завязку. Он ещё и медленнее может стать обычного.
А если у вас нормальный SSD то срок жизни у него будет вполне годный. Некоторые харды быстрее дохнут(естественно не все). :D
Можно просто взять нормальный SSD вместо нонейма с алика. Samsung EVO 850 - великолепная серия например, на пяток лет хватит в нете сёрфить, потом под своп его и взять что-то актуальнее
А не проще все тогда в RAM засунуть? Еще быстрее будет и ссд меньше изнашивается.
Уже специальная программа есть.
Profile-sync-daemonAUR (psd) — небольшой псевдо-демон, предназначенный для переноса профилей браузеров в tmpfs (ОЗУ) и синхронизации с постоянным хранилищем (HDD/SSD) используя rsync.
https://wiki.archlinux.org/index.php/Profile-sync-daemon_(...)
Такое чувство что все застряли с первыми поколениями SSD. И сдувают с него пылинки. :)
> Такое чувство что все застряли с первыми поколениями SSD. И сдувают с
> него пылинки. :)Мне про сегодняшнее поколение сказали, что проживёт те же (условные) два года, что и SD.
Блин, что значит "сказали"? Это же считается тривиально. Померял, сколько пишешь в среднем, сравнил с обещанными TBW, всех делов. Чтобы ушатать SSD за два года нужен далеко не профиль браузера.
> Блин, что значит "сказали"? Это же считается тривиально. Померял, сколько пишешь в
> среднем, сравнил с обещанными TBW, всех делов. Чтобы ушатать SSD за
> два года нужен далеко не профиль браузера.Так у меня и не профиль браузера, за "браузер" я бы не переживал.
Кстати, все отказы SD получились на системных областях.
А вот подсчёт такой будет иметь огромную погрешность. Проще послушать тех, кому тащат эти SD/SSD назад по гарантии.
Конечно на системных. Потому что вменяемой работы со флешом там и близко нет, иначе равномерно всё было бы.
> Конечно на системных. Потому что вменяемой работы со флешом там и близко
> нет, иначе равномерно всё было бы.Так я тоже не удивился, только за тайминг обиделся маленько ))
Ведь линуксовые ФС что-то постоянно трогают именно в "системных" блоках, noatime или нет?
> проживёт те же (условные) два года, что и SDВидимо, большие специалисты в области SSD, раз такую чушь несут. Нормальные девайсы нужно петабайтами грузить, чтобы появились какие-то проблемы. Два года - это даже для самых простых моделей мало. https://3dnews.ru/938764
>> проживёт те же (условные) два года, что и SD
> Видимо, большие специалисты в области SSD, раз такую чушь несут. Нормальные девайсы
> нужно петабайтами грузить, чтобы появились какие-то проблемы. Два года - это
> даже для самых простых моделей мало. https://3dnews.ru/938764Прочёл с удовольствием. А специалисты ли те, кто достаточно долго занимается продажей и ремонтом? Тебе видней.
А модели вам называли? Просто это как обычно в ремонт несут то что накрылось. Плюс про два года могут говорить о тех моделях которые покупались в 2015 году или до него.
С тех пор повысился ресурс как у простой планарной памяти так и вошла в обиход 3D-NAND.
И естественно если вы берёте самый дешёвенький SSD, то и жить он будет соответственно.
Тут так же как с материнками, видеокартами и прочим.(я имею ввиду линейку одинаковых по основным парметрам, т.е. к примеру видеокарты 1060 есть разной цены и отличие будет в компонентной базе и охлаждении и да не всё конечно что дорогое будет хорошим)
>[оверквотинг удален]
> что накрылось. Плюс про два года могут говорить о тех моделях
> которые покупались в 2015 году или до него.
> С тех пор повысился ресурс как у простой планарной памяти так и
> вошла в обиход 3D-NAND.
> И естественно если вы берёте самый дешёвенький SSD, то и жить он
> будет соответственно.
> Тут так же как с материнками, видеокартами и прочим.(я имею ввиду линейку
> одинаковых по основным парметрам, т.е. к примеру видеокарты 1060 есть разной
> цены и отличие будет в компонентной базе и охлаждении и да
> не всё конечно что дорогое будет хорошим)Да, это как с кальцинированными свинцово-кислотными "аккумуляторами". Вроде бы аккумулятор, но если сильно разрядить то можно выбрасывать. :( Вот такая вот полутораразовая батарейка получается! Но маркетолухи как всегда на высоте.
> А модели вам называли? Просто это как обычно в ремонт несут то
> что накрылось. Плюс про два года могут говорить о тех моделях
> которые покупались в 2015 году или до него.Ну да, я понимаю. Но мне говорили о Сэвидже, который лежал в витрине (и на который я показывал пальцем) и который так хвалят в тут упомянутом обзоре.
Как-то "западло" переплачивать за конструктив, который будет стремительно стареть. SD выбросил, вставил новую в переходник -- поехали. SD не жалко. 8-гиговый CF, купленный не помню в в каком году, до сих пор работает системным диском (но уже мало).
похоже не все ещё поняли, что javascript нужно выключить и выпилить из браузеров навсегда...
> похоже не все ещё поняли, что javascript нужно выключить и выпилить
> из браузеров навсегда...Аминь.
> похоже не все ещё поняли, что javascript нужно выключить и выпилить
> из браузеров навсегда...Есть мнение что js таки преодалел пространство и время и вырвался на сервера (node), десктоп (Electron), мобильники (React native), эмбеддед (Espruino) и т.д.
> Есть мнение что js таки преодалел пространство и время и вырвался на
> сервера (node), десктоп (Electron), мобильники (React native), эмбеддед (Espruino) и т.д.Пора вызывать охотников за привидениями.
возможно годиков через десять так и сделают
Озвучили бы хоть примерные системные требования для этого чуда. Помню как flash работал на компе с 256Мб памяти. Неплохо работал.Надеюсь можно будет скомпилировав web-приложение один раз сохранить его в кэше и запускать бинарники оттуда. Как в source based системах.
Заживем когда в WebAssembly засунут DOM.
> Заживем когда в WebAssembly засунут DOM.сам понял чё сказал?
Нормально он сказал, только кратко. Сейчас из виртуальной машины WebAssembly прямого доступа к DOM нет, только через джаваскриптовый бридж. Что ни в плане скокрости не радостно, ни в плане возможности сделать что-то полноценное без JS вообще.
Когда говорят о том что web надо чем-то заменить, в качестве альтернативы почему-то обсуждают способы трансляции видеопотока с удалённого рабочего стола.Попробую представить себе замену.
Значок запуска, пункт меню или алиас командной строки ведут на конфигурационный файл с примерно таким содержимым:[элементы оформления]
брать из удалённого источника : да
rsync://ссылка_на_источник[шрифты]
использовать локальные: да[исполняемый код]
брать из удалённого источника: да
обновлять автоматически: если изменения отмечены как важные[контент]
использовать локальный: нет
обновлять автоматически: если есть подключение к сети
https://ссылка_на_источникСобранное из разных источников приложение выполняется как локальное. В идеале из сети берётся только контент, а оформление может быть любым или не использоваться вообще.
Если бы всё так просто было...
1) Безопасность. По сути предлагается запускать непонятно кем собранные бинарики на локальном компьютере. Тут JS-интерпретаторы постоянно латают, чтобы в систему не просачивались, а полноценно ограничить исполняемый код - крайне сложно.
2) Архитектуры процессоров. Собирать под всё? А если что-то новое появится?
3) Кросплатформенность.
То, что вы написали, называется Java Web Start (не путать с апплетами). Иногда используется, но не так, чтобы прямо взлетело.
> 2) Архитектуры процессоров. Собирать под всё? А если что-то новое появится?
> 3) Кросплатформенность.
> То, что вы написали, называется Java Web Start (не путать с апплетами). Иногда используется, но не так, чтобы прямо взлетело.JWS это такая себе фича.(в ней есть сохранение того что скачивается, те. кеширование какое-то?) Человек отчасти описал то что делают мобильщики в Google Play. И я имею ввиду в основном игры. Они качают ресурсы и прочее при первом запуске и после их апдейтят, только основной apk апдейтится самим Google Play.
Вообще что JWS что WebAssembly что описанное человеком - это всё развитие идей тех самых аплетов и Java.
Ну и на свои 2 и 3 пункт вы сами же можно сказать ответили. Архитектура не важна если исходник компилируется в определённое промежуточное представление с основными оптимизациями, а потом уже на клиенте преобразуется в более низкоуровневое представление.
javascript.options.wasm = false
> javascript.options.wasm = falseи получаешь вместо гугле-мордокниги-хипстаграммчика пресловутую картинку чувак-с-*лупой.jpg (ту что сейчас гугль выдает при запрете js)
все, ребятушки, дивный новый мир пришел - ваш компьютер исполняет хз чей код в неимоверных количествах, и вы уже совсем никак не можете контролировать, что он на самом деле делает.
И защитить даже небольшое количество важных данных от воровства этим кодом, что характерно, тоже не можете.
Лучше обойтись без хипстограма чем упростить эксплуатацию дыр вроде meltdown, нет?
> и получаешь вместо гугле-мордокниги-хипстаграммчика пресловутую картинку чувак-с-*лупой.jpg (ту что сейчас гугль выдает при запрете js)А DuckDuckGo не выдаёт, и нормально отрабатывает с запрещённым JS.
Но я попробую.
> и получаешь вместо гугле-мордокниги-хипстаграммчика пресловутую картинкуЧто значит "вместо"? Что получаешь то и получаешь. Не вместо. Мало ли что кто ещё вздумает пресловуто показать. Но по крайней мере не так сложно оценить что они готовы показывать и показывают в таком случае. Понавылезли показывать...
Веб — одна из лучших иллюстраций к философской максиме о 95 %. Эти люди на всё пойдут и всё сделают, чтобы себя убить или хотя бы выстрелить себе в ногу.
Получается, чтобы заюзать тот-же жс(если его выпилять когда-то), нужно будет взять сорцы жс движка, адаптированного для веб-асм, собрать движок, и внутрь него воткнуть свой скриптец(вместо жс вставьте любой другой интерпретируемый язык). Если компилить жс в васм, то рантайм будет весить гигабайты. Не могу понять, откуда возьмется уменьшение размера? Сомневаюсь, что макаки все налетят писать сайты на С++
На плюсах - не налетят (хотя некоторые приложения и некоторые куски - будут). А на Go том же - вполне. Это прежде всего для статически компилируемых языков хорошо. Впрочем, тут где-то упоминали, что есть компилятор для TypeScript, можете оценить размер рантайма.
> Получается, чтобы заюзать тот-же жс(если его выпилять когда-то), нужно будет взять сорцы
> жс движка, адаптированного для веб-асм, собрать движок, и внутрь него воткнуть
> свой скриптец(вместо жс вставьте любой другой интерпретируемый язык). Если компилить жс
> в васм, то рантайм будет весить гигабайты. Не могу понять, откуда
> возьмется уменьшение размера? Сомневаюсь, что макаки все налетят писать сайты на
> С++Забыл добавить - вообще-то минимальный интерпретатор JS компилируется в 100кб машинного кода, для питона есть пяток реализаций с разными возможнстями, сделанных для микроконтроллеров... В общем, на самом деле бывает оно и мелким и иногда даже не особо тормозным.
В браузерах основные тормоза вылазят из из DOM и рендера. Сами реализации JS хоть и отличаются перформансом, но не являются самым узким местом.
да я ж не спорю. Речь не о перформансе, а в первую очередь о статической типизации с её плюшками (меньше ошибок и лучше документирован код), использовании готовых библиотек и более удобном синтаксисе (справедливости ради - в этом JS неплохо подправили).А вот объём рантайма для JS или питона будет, пожалуй, великоват.
А на C++ этот двухуровневый компилятор или на Rust?
Сомневаюсь что на Rust.
А я пользуюсь тестовой версией Firefox, так что внезапным приростом производительности обрадован не буду.
Лучше б там (57+) настройка горячих клавиш появилась.Опера 20 лет назад умела))
Более того, не могу отучить firefox показывать подтверждающее окно при загрузке торрента.
https://bugzilla.mozilla.org/show_bug.cgi?id=723697
А предложенный костыль несовместим с новыми версиями браузера
Ну там вполне чётко описали в чём суть вопроса. Браузер ведёт себя как ему говорит сервер. А сервер говорит что это атачмент. :)
Там багрепорту уже 6 лет и он помечен как дубликат.
потому вот сюда лучше терроризировать
https://bugzilla.mozilla.org/show_bug.cgi?id=453455
https://bugzilla.mozilla.org/show_bug.cgi?id=236541
Лучше бы квоты сделали.
1 мегабайт памяти и 1000 команд байткода.
Не уложилась страница в квоту - превращается в тыкву.
Можно добавить ещё 100 команд каждую секунду, если вкладка активна.А то надоело уже прибивать firefox.exe после отъедания им 95% оперативки.
У тебя меньше 2гб оперативки, что ли? Так докупи, не мучайся. Надоели эти желающие ограничить все и вся, лишь бы их некрожелезу дышалось свободнее.Уже даже для более-менее комфортной веб-разработки 8гб совсем впритык и на грани комфортного(IDE JetBrains, пара виртуалок, браузер, еще мелочи), а для чего посерьезней (графика, например) так и 32 часто не хватает на тяжелых проектах.
И по твоему это нормально
Абсолютно. Хватит тормозить прогресс и насаждать нищeбродство.Это как в реальной жизни же - надо стремиться зарабатывать больше, а не экономить.
> Абсолютно. Хватит тормозить прогресс и насаждать нищeбродство.
> Это как в реальной жизни же - надо стремиться зарабатывать больше, а
> не экономить.Прогресс? То есть Вы считаете, что пузырьковая сортировка более прогрессивна, чем быстрая, поскольку требует больше ресурсов?
Действительно, зачем голову напрягать, когда можно напрячь производственную линию и воткнуть больше планок.
Откуда вообще такие представления?Ни один идиот не будет париться и каждый раз писать сортировку - он просто подключит либу/фреймворк/модуль, где это есть и дернет библиотечный метод, где это уже реализовано с учетом всех больших О. Отсюда и вес программ.
А насчет прогресса - приведу свой пример. Я работаю в области 3д-графики (да, на ворованной проприетарщине, но не суть).
Сейчас ПО позволяет делать в одиночку объемы и качество работ, которые, например, 15 лет назад могли выдавать лишь крупные студии (за сравнимое время). Само собой, софт стал жрать нааамного больше, на порядки - например, мне моих 64гб часто не хватает для моих задач, но он и позволяет получать результат, недостижимый с предыдущими поколениями софта/железа.
С браузерами и вебом ситуация похожа, но не так заметна. Помните, как в 2006 году делали скругленные уголки у дивов? Либо вручную пихать 19 оберток из дивов разного размера и разного border-color, либо использовать либу NiftyCorners, которая делала то же самое автоматом, но безбожно тормозила, либо нарезать уголки картинками из фотошопа. А потом появился родной border-radius и жить стало не только проще и веселее, но и работать это все в браузере стало быстрее. А память сожралась.
В общем, прогресс - это не сортировка пузырьком. Надеюсь, донес, что хотел.
Вы объясняете логично, но несколько неполно. ))Рост потребления ресурсов (мощности, памяти), конечно, приятно отнести на счёт того, что вы "можете обработать больше за то же время". Для специализированных задач это верно -- в общем.
Но о чём говорят ваши оппоненты? -- а почему сравнимый рост потребления ресурсов наблюдается в рядовых настольных задачах, которые великолепно решались в условном 2006 году, и насколько этот рост оправдан?
Когда один делает то, что в 2006 делали 10, это прекрасно.
Но когда один делает то же, что делал в 2006 на вдесятеро большем ресурсе, это справедливо вызывает вопросы -- хотя бы о качестве подготовки и работы, если уж не об интенциях.Пример с div-ами, собственно, против вас работает, если в 2006 году можно было соорудить обход, который (уже тогда) справлялся с проблемой (а я помню как раз подобный случай, и как раз в 2006 году :)).
> и жить стало не только проще и веселее, но и работать
> это все в браузере стало быстрее. А память сожралась.Да как же оно всё быстрее и быстрее? Скоро сэкономленное время вспять побежит.
Можно сколько угодно говорить "прогресс" и "тренды" и подобные жужжалки, но это не ответ, по крайней мере, не объяснение. С даже большим смыслом можно сказать "объективные тенденции развитися производственных отношений".
И, да, библиотеки/модули существовали ещё до настольных машин.
> В общем, прогресс - это не сортировка пузырьком. Надеюсь, донес, что хотел.Это всё к прогрессу ни малейшего отношения не имеет. Если каждая ваша новая машина будет потреблять вдвое больше топлива, тогда вы поймёте, что испытывает среднестатистический владелец ПК, которого фактически принуждают каждые несколько лет покупать новый ПК без изменения качества собственной жизни.
Тут такое дело. Все эти скругленные уголки - они тому, кто заходит на сайт вовек не сдались.
Зато на отношения между заказчиком веб-разрабоки и исполнителем влияют очень серьёзно - можно цену повыше поставить. Более прогрессивный дизайн же.
> У тебя меньше 2гб оперативки, что ли? Так докупи, не мучайся. Надоели
> эти желающие ограничить все и вся, лишь бы их некрожелезу дышалось
> свободнее.У меня 16Г , комп не выключаю. Периодически , постоянно загруженный фраерфокс отстреливается из-за отжора памяти. Сколько еще надо памяти поставить?
> У меня 16Г , комп не выключаю. Периодически , постоянно загруженный фраерфокс
> отстреливается из-за отжора памяти. Сколько еще надо памяти поставить?Значит проверь плагины - скорее всего, понаставил всякого шлака, вот он и течет.
У меня 48гб (ECC, тк двухголовый ксеон на 1366 сокете), тоже неделями не выключается, win8.1, ff57.
Ни разу не видел, чтобы он жрал больше 2гб.
>> У меня 16Г , комп не выключаю. Периодически , постоянно загруженный фраерфокс
>> отстреливается из-за отжора памяти. Сколько еще надо памяти поставить?
> Значит проверь плагины - скорее всего, понаставил всякого шлака, вот он и
> течет.
> У меня 48гб (ECC, тк двухголовый ксеон на 1366 сокете), тоже неделями
> не выключается, win8.1, ff57.
> Ни разу не видел, чтобы он жрал больше 2гб.Текут вкладки на отдельных сайтах, проблема именно в том, что никаких ограничений в браузере, препятствовавших бы бы таким утечкам, нет. Точнее, не утечкам, а неконтроллируемому потреблению ресурсов.
А ссыдки на чудо сайты будут?
Ну вот например, 1 сайт отъел 750 мегабайт памяти.1,289.96 MB (100.0%) -- explicit
├──1,102.43 MB (85.46%) -- window-objects
│ ├────781.01 MB (60.54%) -- top(https://secretmag.ru/trends/tendencies/my-v-zhope-pochemu-tu..., id=40802189928)
│ │ ├──759.91 MB (58.91%) -- active
│ │ │ ├──757.98 MB (58.76%) -- window(https://secretmag.ru/trends/tendencies/my-v-zhope-pochemu-tu...)
│ │ │ │ ├──749.11 MB (58.07%) -- js-compartment(https://secretmag.ru/trends/tendencies/my-v-zhope-pochemu-tu...)
│ │ │ │ │ ├──747.06 MB (57.91%) -- classes
│ │ │ │ │ │ ├──248.79 MB (19.29%) -- class(Object)/objects
│ │ │ │ │ │ │ ├──248.31 MB (19.25%) ── gc-heap
│ │ │ │ │ │ │ └────0.48 MB (00.04%) ++ malloc-heap
│ │ │ │ │ │ ├──167.62 MB (12.99%) -- class(Function)/objects
│ │ │ │ │ │ │ ├──167.38 MB (12.98%) ── gc-heap
│ │ │ │ │ │ │ └────0.24 MB (00.02%) ── malloc-heap/slots
│ │ │ │ │ │ ├──165.28 MB (12.81%) -- class(Call)/objects
│ │ │ │ │ │ │ ├──165.24 MB (12.81%) ── gc-heap
│ │ │ │ │ │ │ └────0.04 MB (00.00%) ── malloc-heap/slots
│ │ │ │ │ │ ├──165.20 MB (12.81%) -- class(Array)/objects
│ │ │ │ │ │ │ ├──165.11 MB (12.80%) ── gc-heap
│ │ │ │ │ │ │ └────0.09 MB (00.01%) ++ malloc-heap
│ │ │ │ │ │ └────0.18 MB (00.01%) ++ (3 tiny)
│ │ │ │ │ └────2.05 MB (00.16%) ++ (6 tiny)
│ │ │ │ └────8.86 MB (00.69%) ++ (4 tiny)
│ │ │ └────1.93 MB (00.15%) ++ (7 tiny)
│ │ └───21.10 MB (01.64%) ++ js-zone(0x1082e000)
У меня 8 гиг на компе.
Кроме RDP клиента и файрфокса почти ничего и не запускаю.
Ну, в последнее время стал больше хромом пользоваться.
> А то надоело уже прибивать firefox.exe после отъедания им 95% оперативки.
Спалился вендузятник
>> А то надоело уже прибивать firefox.exe после отъедания им 95% оперативки.
> Спалился вендузятникТо есть firefox под windows это так, демо-версия?
>>> А то надоело уже прибивать firefox.exe после отъедания им 95% оперативки.
>> Спалился вендузятник
> То есть firefox под windows это так, демо-версия?А что, лимиты вам там так и не завезли?
Поставил 1GB RES-лимита и "доволен аки слон".
>Не уложилась страница в квоту - превращается в тыкву.И у тебя все соцсети и банкинги превращаются в тыкву, даже тупо почта - например, гмейл. Умный ты наш.
>>Не уложилась страница в квоту - превращается в тыкву.
> И у тебя все соцсети и банкинги превращаются в тыкву, даже тупо
> почта - например, гмейл. Умный ты наш.Ничего, пропатчат, выкинут лишнее, уложатся в лимит. Была бы мотивация.
Можно написать и на ассемблере, чтобы шло на микроконтроллере. Была бы мотивация.
А в реальной жизни все это - глупость, тк приоритетнее быстрее выпустить на рынок продукт, а не оптимизировать его до посинения.Вспоминается притча про двух программистов - Васю и Петю: Вася делал тяп-ляп и в продакшен, а Петя сидел, вылизывал архитектуру, и оптимизировал; в итоге у Васи выстрелил стартап и он стал миллиардером, а потом тупо купил Петю с его проектом и всеми потрохами.
Будь как Вася, а не Петя. К сожалению, я это слишком поздно понял.
> Можно написать и на ассемблере, чтобы шло на микроконтроллере. Была бы мотивация.
> А в реальной жизни все это - глупость, тк приоритетнее быстрее выпустить
> на рынок продукт, а не оптимизировать его до посинения.
> Вспоминается притча про двух программистов - Васю и Петю: Вася делал тяп-ляп
> и в продакшен, а Петя сидел, вылизывал архитектуру, и оптимизировал; в
> итоге у Васи выстрелил стартап и он стал миллиардером, а потом
> тупо купил Петю с его проектом и всеми потрохами.
> Будь как Вася, а не Петя. К сожалению, я это слишком поздно
> понял.Меня, как конечного пользователя, меньше всего волнует судьба озвученных персонажей; а вот вопрос неэффективного использования, сиречь разбазаривания ресурсов моего PC меня волнует.
Как-то не очень хорошо, когда после того, как из поиска открыты несколько вкладок и оставлены на потом, за несколько дней выедается вся доступная оперативка.
Браузеры - то же самое, это тоже рынок.
> Браузеры - то же самое, это тоже рынок.Причём тут рынок? Мне, например, без всякого рынка было бы удобно, чтобы сайты загружались по умолчанию в режиме с ограничением ресурсов, а при необходимости они бы добавлялись на время в белый список.
"Для JavaScript вторая стадия запускается спустя какое-то время после начала выполнения кода, лишь после того как накопится определённая статистика о характере выполнения и типах данных."
Что-то нехорошее из проблемы в процессорах Intel напоминает...
Mozilla делает всё, чтобы я перестал пользоваться Firefox.
Скрыл панель меню и где мои закладки?
FF стал таким же прожорливым как и ххром.