Разработчики браузерного движка WebKit представили (https://www.webkit.org/blog/3362/introducing-the-webkit-ftl-jit/) FTL (Fourth Tier LLVM), новый режим работы JIT-компилятора, использующий оптимизатор LLVM для генерации эффективного машинного кода. FTL оценивается как стабильный и активирован по умолчанию компанией Apple для OS X и iOS.Использование оптимизатора LLVM позволило применить для JavaScript методы изощрённой оптимизации, ранее доступные только для компилируемых языков, таких как C++ и Objective-C. По сравнению с ранее доступным в WebKit JIT-компилятором DFG (Data Flow Graph), FTL в среднем обеспечивает прирос производительности на 35%. Наибольшая эффективность FTL наблюдается для длительно выполняющихся web-приложений, а также кода, использующего расширение Asm.js.
<center><a href="http://www.webkit.org/blog-files/ftl-jit/four_tier_performan... src="https://www.opennet.ru/opennews/pics_base/0_1400181471.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>
<center><a href="http://www.webkit.org/blog-files/ftl-jit/ftl_pipeline.png&qu... src="https://www.opennet.ru/opennews/pics_base/0_1400182491.png" style="border-style: solid; border-color: #606060; border-width: 1px;max-width:100%;" title="" border=0></a></center><center><a href="http://www.webkit.org/blog-files/ftl-jit/ftl_timeline.png&qu... src="https://www.opennet.ru/opennews/pics_base/0_1400182000.png" style="border-style: solid; border-color: #606060; border-width: 1px;max-width:100%;" title="" border=0></a></center>
URL: https://www.webkit.org/blog/3362/introducing-the-webkit-ftl-jit/
Новость: https://www.opennet.ru/opennews/art.shtml?num=39784
После демарша гугла, эпл начинает потихоньку открывать разработки. Вообще, несмотря на более тормозной движок и отсутствие ряда фич, WebKit выглядит более привлекательно, ибо не является комбайном, которым рулит лишь узкая группа лиц из корпорации добра.
Эй парень, они взяли другой проект с открытым исходным кодом, поэтому не имеют право закрывать его. А именно KHTML из Konqueror. В те годы всему миру было начихать на технические превосходства веб-движков, так как у 99% всё равно IE5/IE6. Поэтому интересную разработку никто не замечал. И тут пришла Apple и сделала на его основе Webkit. Именно поэтому Konqueror 4.3 KHTML заменили на Webkit. Это была эволюция, а не как с Opera 12.
Блеен... Прям в сердце ёкнуло, вспомнился Konqueror, было же время... А не у него ли первого вкладки появились? Фича - которую никак было не втолковать пользователям IEА теперь некому толкать паровоз, да и интернет уже не тот. Хочу машину времени.
> А не у него ли первого вкладки появились?Первые вкладки появились где-то в 1998-99гг в Mozilla Firebird v.0.97.
> Первые вкладки появились где-то в 1998-99гг в Mozilla Firebird v.0.97.iZEN даже при чтении википепии вслух врёт. Бе-е-едный!
Не первые, не в морзиле, не в 98-99.
""Mozilla 0.9.5 in October 2001, Phoenix 0.1 (now Mozilla Firefox) in October 2002
en.wikipedia.org/wiki/Tab_(GUI)
>> Первые вкладки появились где-то в 1998-99гг в Mozilla Firebird v.0.97.
> iZEN даже при чтении википепии вслух врёт. Бе-е-едный!
> Не первые, не в морзиле, не в 98-99.
> ""Mozilla 0.9.5 in October 2001, Phoenix 0.1 (now Mozilla Firefox) in October
> 2002
> en.wikipedia.org/wiki/Tab_(GUI)Видишь, как интересно. Я не нашёл фактоидов, а ты нашёл. ;)
>> А не у него ли первого вкладки появились?
> Первые вкладки появились где-то в 1998-99гг в Mozilla Firebird v.0.97.opera смотрит на тебя как на изю.
Им не надо втолковывать. Идеалогия винды - многооконность на одном рабочем столе.
Какие новости.
Вообще-то у них изначально был http://en.wikipedia.org/wiki/Multiple_document_interface
от которого только совсем недавно (всего 15 лет назад) отказались по просьбам пользователей
> комбайном, которым рулит лишь узкая группа лиц из корпорации добра.А чем эппл принципиально от гугли отличается?
Одни причиняют добро, другие наносят пользу.
Шуточки? Чойта я не слышал про Эппл Саммнр оф Коде. У Эппла только:
"Кто похвалит меня лучше все-е-ех,тот
получит
вкусную конфету!"
Блин, советские мультики добру учили.
Эппл как минимум активно контрибьютит в LLVM/Clang, Webkit и BSD libc и cups, не считая всякой мелочевки.
В этих проектах Эппл заинтересован непосредственно. Тоже самое Андроид, Хромиуи и пр. для Гугла.
Как бы это и есть то самое "впрягли корпорастов. работают на себя - работают на всех".
> Как бы это и есть то самое "впрягли корпорастов. работают на себя
> - работают на всех".В том и отличие Google Summer Of Code, Гугл в данном случае является спонсором и меценатом не связанных с ним открытых проектов, в отличие от.
Гугл, разумеется, не является в полном смысле меценатом - GSoC по сути это очень дешевый способ head hunting-а перспективной молодежи. То что при этом что-то делается для каких-то проектов - побочный эффект, не более.
> Чойта я не слышал про Эппл Саммнр оф Коде.Так ещё и не вечер. Тут же вопрос стоит именно так: либо опенсорц даёт эффективные методы заработка, и тогда "все там будут", вопрос только кто раньше созреет. Либо есть "патологические враги опенсорц". Я думаю - первое. С одним "но". Сейчас уже видно, что революцию надо распространять на хардварь.
Вопрос стоял:>А чем эппл принципиально от гугли отличается?
Так что отпрыгни.
время бурного роста абы как, прошло, наступило время оптимизации. во многих проектах заметно, что внедрение качественных универсальных инструментов дает очень быстрый и хороший результат.
бгг, аббревиатура faster than light совершенно незаметна
Мир сходит с ума - сначала перегоняем в JS при помощи LLVM, а затем им же JS в машинный код.
Блин, поздно. Qt уже на Blink же переходить стал и неизвестно сколько он оперативки после этого начнет жрать.
Мне Эппловский вебкит гораздо больше в этом плане нравится, начиная где-то с 10.8 он даже более-менее стабильно работать стал и без всякого 1 процесс на вкладку/плагин. Вот этот жор 2-3 гигов Private Memory в Blink/Webkit на 10-15 вкладках дико утомляет, Эппловский не уступает по скорости(но был их JS-engine был проприетарным блобом) и жрет в 2-3 раза меньше.
Продолжай доделывать QtWebkit
У тебя еще есть время
>Qt уже на Blink же переходить сталОно и к лучшему. Этот полупроприетарный LLVM в Qt нафиг не упёрся.
>>Qt уже на Blink же переходить стал
> Оно и к лучшему. Этот полупроприетарный LLVM в Qt нафиг не упёрся.Правильно! На С++ давно уже есть JIT — Sun HotSpot ( http://ru.wikipedia.org/wiki/HotSpot ). :))
Ладно б ты еще про Zing упомянул, говоря про приличный JIT.
Который, кстати, на LLVM строят.
А ничего, что у конкурента тож BSD licence? http://changelogs.ubuntu.com/changelogs/pool/universe/libv/l...
LuaJIT уже рвёт? (без asm.js-мухлежа)
> LuaJIT уже рвёт? (без asm.js-мухлежа)да оно и с мухлежом не особо. а если сравнить размер кодовой базы… нет, лучше не надо.
>"With proper design and engineering, there's no reason a JS JIT compiler couldn't compete with LuaJIT."
>--Mike Pall
>>"With proper design and engineering, there's no reason a JS JIT compiler couldn't compete with LuaJIT."
>>--Mike Pallосталось найти того, кто это сделает. СуперМайк не заинтересован.
Заинтересован, но его не зовут. Потому злорадствует.>Umm, but LuaJIT does loop peeling and LICM. Or rather an equivalent that actually works for dynamic languages and provides both code hoisting and unswitching. It's 300 lines of code. Oh, and it performs selective unrolling, too.
>Sure, let's go down the list of advanced compiler optimizations! Muchnick to the rescue ... LuaJIT also does: constant folding, constant propagation, copy propagation, algebraic simplifications, reassociation, common-subexpression elimination, alias analysis, load-forwarding, store-forwarding, dead-store elimination, store sinking, scalar replacement of aggregates, scalar-evolution analysis, narrowing, specialization, loop inversion, dead-code elimination, reverse-linear-scan register allocation with a blended cost-model, register hinting, register renaming, memory operand fusion.
>Due to the nature of a trace compiler, it implicitly performs partial and interprocedural variants of all of them. And many traditional optimizations, like straightening or unreachable code elimination are unnecessary.
>All of that in 120KB for the VM and 80KB for the JIT compiler. And I didn't need 15 years and a billion dollar budget for that, either.
>I'm planning to add value-range propagation, array-bounds-check elimination, escape analysis, allocation sinking, if conversion, hyperblock scheduling and auto-vectorization. Anything I forgot? I'll see what I can do. :-)
> Заинтересован, но его не зовут.я имел в виду «не заинтересован делать это бесплатно». а денег на jsjit корпорасты ему не несут, предпочитая оные деньги весело просирать.
впрочем, я бы вообще все попытки сделать jit'ы для js уничтожал бы вместе с авторами.
>все попытки сделать jit'ы для js уничтожал бы вместе с авторамиПотому что технологии бывают вредные, полезные и антинародные, да?
> Кибернетика является, таким образом, реакционной механистической теорией, стремящейся отбросить современную научную мысль, основанную на материалистической диалектике, далеко вспять — к изжитой и опровергнутой более ста лет назад механистической философии.
> — «Наука современных рабовладельцев», «Наука и жизнь», июнь 1953, стр.42
>>все попытки сделать jit'ы для js уничтожал бы вместе с авторами
> Потому что технологии бывают вредные, полезные и антинародные, да?нет. потому что дебилы-хипстеры пытаются впихнуть невпихуемое.
Так ведь по просьбам трудящихся. Всё для рабочего человека.