<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Linux Forum &mdash; В Chrome тестируют новый подход к компиляции JavaScript]]></title>
		<link>https://linuxforum.ru/viewtopic.php?id=38523</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=38523&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «В Chrome тестируют новый подход к компиляции JavaScript».]]></description>
		<lastBuildDate>Wed, 15 Feb 2017 06:31:58 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[В Chrome тестируют новый подход к компиляции JavaScript]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=452283#p452283</link>
			<description><![CDATA[<p><br />&nbsp; &nbsp; Разработчики JavaScript движка V8 объявили о начале тестирования упрощённой схемы компиляции JavaScript, основанной на применении интерпретатора&nbsp; Ignition и JIT-компилятора Turbofan для всего JavaScript, а не для специфичных ситуаций. Новый режим включен по умолчанию для контрольной группы пользователей веток Chrome Canary и Chrome Developer. Остальные могут включить новый режим активировав опцию &quot;Experimental JavaScript Compilation Pipeline&quot; в &quot;about:flags&quot;.&nbsp; &nbsp; &nbsp; &nbsp;Ранее в V8 использовался достаточно сложный многоуровневый процесс компиляции JavaScript, в котором одноразовый код интерпретировался на первой стадии, после чего генерировался машинный код для JIT, который периодически обновлялся и улучшался двумя оптимизирующими JIT-компиляторами. В частности, вначале генерировался машинный код для всего JavaScript при помощи быстрого JIT-компилятора FullCodegen, а для устранения задержки перед готовностью JIT-компилятора применялся интерпретатор Ignition, который также брал на себя единичные операции, не требующие высокой скорости выполнения, для которых нет смысла привлекать полноценный JIT.&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Вместо машинного кода Ignition использует байткод, выполняемый в регистровой виртуальной машине, который требует в 2-4 раза меньше памяти, а по скорости выполнения в реальных приложениях очень близок к неоптимизированному машинному коду. После формирования базового машинного кода для JIT, вступали в строй два дополнительных JIT-компилятора, которые генерировали оптимизированный код, учитывая накопленную статистику. Выбор того или иного оптимизирующего компилятора зависел от контекста, но Turbofan изначально развивался как будущая замена&nbsp; Crankshaft, по мере тестирования и стабилизации забирая на себя всё больше функций.&nbsp; &nbsp; &nbsp;<span class="postimg"><img src="https://www.opennet.ru/opennews/pics_base/0_1487151495.png" alt="https://www.opennet.ru/opennews/pics_base/0_1487151495.png" /></span><br />&nbsp; &nbsp; &nbsp; Новая схема подразумевает применение на первой стадии только интерпретатора с байткодом с подключением по мере выполнения кода&nbsp; JIT-компилятора Turbofan. Таким образом полностью исключается фаза упреждающей&nbsp; генерации неоптимизированного машинного кода JIT-компилятром FullCodegen, а также удаляются привязки к старому JIT-компилятору Crankshaft и лишняя логика разветвлений. Ожидается, что изменение положительно скажется на производительности реальных JavaScript-приложений и позволит снизить расход памяти.&nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Источник: <strong>http://www.opennet.ru/opennews/art.shtml?num=46051</strong><br />&nbsp; &nbsp; <br /><a href="http://www.opennet.ru/opennews/art.shtml?num=46051">_источник</a></p>]]></description>
			<author><![CDATA[null@example.com (R2-D2)]]></author>
			<pubDate>Wed, 15 Feb 2017 06:31:58 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=452283#p452283</guid>
		</item>
	</channel>
</rss>
