В ошибке любой женщины есть вина мужчины.

Можно ли загадывать желание между двумя программистами? ...

Разработчики openSUSE представили Uyuni, форк платформы Spacewalk
Sat, 26 May 2018 21:39:06 +0300

Анонимный благотворитель намерен пожертвовать миллион долларов проекту GNOME
Sat, 26 May 2018 08:44:57 +0300

Budgie Desktop возвращается в Solus и пересматривает планы миграции c GTK на Qt
Thu, 24 May 2018 09:32:35 +0300

Открыт код классического почтового клиента Eudora
Wed, 23 May 2018 09:09:46 +0300

Kubuntu прекращает подготовку сборок для 32-разрядных систем x86
Mon, 21 May 2018 12:24:33 +0300

Компания Tesla частично опубликовала GPL-код для формирования системного окружения
Mon, 21 May 2018 08:31:05 +0300

Lubuntu переходит на пользовательское окружение LXQt
Sat, 19 May 2018 09:24:55 +0300

Представлена вторая версия протокола Git
Fri, 18 May 2018 21:50:53 +0300

В Chrome изменится индикация безопасных соединений
Thu, 17 May 2018 22:24:42 +0300

Сенат США проголосовал за отмену решения FCC, касающегося сетевого нейтралитета
Thu, 17 May 2018 10:53:01 +0300

Прекращена разработка дистрибутива Korora
Wed, 16 May 2018 23:20:47 +0300

Компания Canonical опубликовала заявление, связанное с вредоносным ПО в Snap Store
Tue, 15 May 2018 23:33:17 +0300

Фонд свободного ПО сертифицировал программатор Zerocat Chipflasher
Tue, 15 May 2018 22:37:05 +0300

Из файлового менеджера GNOME будет удалена возможность запуска исполняемых файлов
Tue, 15 May 2018 21:41:05 +0300

В openSUSE Leap появится поддержка атомарного обновления системы
Tue, 15 May 2018 11:27:56 +0300

Новости OPENNET
Новости

Разработчики Mozilla сообщили о включении в состав 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-файлов позволит сразу использовать уже ранее скомпилированный и сохранённый в кэше машинный код. В Firefox 58 функциональность будет ограничена поддержкой кэширования байткода для JavaScript (ускоряет загрузку Facebook на 12%, Twitter на 5.4%, сайтов Google на 4.9%), а кэширование итогового машинного кода будет реализовано в одном из дальнейших выпусков.

61.6659 72.1183 0.5634 9.6513

НОВОСТИ: Выпуск CentOS Atomic Host 7.1804, специализированной ОС для запу ... Thu, 24 May 2018 09:10:02 +0300

Проект CentOS представил выпуск минималистичной операционной системы CentOS Atomic Host 7.1804, которая поставляется в форме монолитного целиком обновляемого образа и предоставляет базовое окружение, которое содержит только минимальный набор компонентов (systemd, journald, docker, rpm-OSTree, geard и т.п.), необходимых для запуска и управления изолированными контейнерами Docker. Все пакеты, обеспечивающие работу конечных приложений, поставляются непосредственно в составе контейнеров, а хост-система не содержит ничего лишнего.

???????@Mail.ru Opera Firefox INFOBOX - хостинг Google Chrome