Поддайся соблазну. А то он может не повториться.

Дочь учится на повара. Мать: ...

В Firefox 67 будет изменён интерфейс about:config и интегрировано дополнение Firefox Monitor
Mon, 18 Feb 2019 07:47:39 +0300

В Chrome появится поддержка ссылок на отдельные слова и фразы в тексте
Sat, 16 Feb 2019 10:48:24 +0300

Развитие Fedora Atomic Host прекращено в пользу проекта Fedora CoreOS
Sat, 16 Feb 2019 09:59:34 +0300

Представлен новый интерфейс браузера Opera
Fri, 15 Feb 2019 07:53:42 +0300

Обновление пакета с ядром для Ubuntu привело к проблемам с загрузкой на некоторых ноутбуках
Mon, 11 Feb 2019 08:25:02 +0300

Google представил механизм Adiantum для быстрого шифрования накопителей
Sun, 10 Feb 2019 22:52:09 +0300

FreedomEV - открытая надстройка для информационной системы автомобилей Tesla
Sat, 09 Feb 2019 23:25:16 +0300

В SUSE/openSUSE будет отключено автоопределение нетипичных файловых систем
Sat, 09 Feb 2019 09:45:28 +0300

Проект GTK+ объявил о переименовании в GTK
Fri, 08 Feb 2019 19:31:46 +0300

Фонд свободного ПО сертифицировал материнскую плату и ПК Vikings D8
Fri, 08 Feb 2019 08:59:57 +0300

В открытую платформу обмена сообщениями Mattermost инвестировано 20 млн долларов
Thu, 07 Feb 2019 09:47:47 +0300

Для Firefox развивается режим строгой изоляции страниц
Thu, 07 Feb 2019 09:09:44 +0300

Для Chrome реализован режим экономии ресурсов
Wed, 06 Feb 2019 12:40:48 +0300

Google опубликовал браузерное дополнение для оценки компрометации паролей
Wed, 06 Feb 2019 12:40:16 +0300

Для Fedora утверждён метод подсчёта пользователей, не использующий UUID
Wed, 06 Feb 2019 09:24:03 +0300

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

Nadav Amit, разработчик ядра Linux из компании VMware, поделился результатом исследования особенностей оптимизации в GCC небольших функций ядра. Исследование было проведено после того, как разработчик столкнулся с непонятным феноменом - внесение несущественных изменений в код ядра, приводило к небольшому, но заметному снижению производительности в тестах. Примечательно, что подобные вносимые изменения были оптимизациями и теоретически должны были увеличить производительность, но на деле производительность падала.

Дело оказалось в том, что GCC принимает решение об использовании inline-развёртывания функций в зависимости от результатов косвенной оценки размера результирующего кода (даже если функция определена с ключевым словом "inline"). Компилятор не учитывает фактический размер результирующего кода, а пытается прогнозировать его. Для ассемблерных вставок прогнозирование делается на основе числа переводов строк ("\n") и разделителей (";") в исходном тексте.

Логика подобного расчёта связана с допуском, что одна строка представляет собой одну ассемблерную инструкцию. Но при этом не учитываются ситуации, когда в ассемблерных вставках применяется большое число директив для вычислений, несколько строк которых в результате приводят к генерации лишь одной небольшой инструкции. Подобная особенность может приводить к таким казусам как снижение производительности при добавлении несущественных макросов. Некоторые разработчики отмечают влияние на inline-развёртывание в новых версиях GCC даже замены символов табуляции на пробелы.

Разница в производительности особенно бросается в глаза для функций с ассемблерными вставками, для которых добавляется излишняя обёртка вместо прямой подстановки нескольких указанных в функции инструкций. В ядре Linux проблему представляют компактные функции с макросами WARN(), для которых оказалось, что не выполняется ожидаемая inline-оптимизация.

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

0 0

НОВОСТИ: Развитие Fedora Atomic Host прекращено в пользу проекта Fedora C ... Sat, 16 Feb 2019 09:59:34 +0300

Разработчики проекта Fedora сообщили об удалении компонентов Fedora Atomic Host из репозитория Rawhide и прекращении разработки данной редакции дистрибутива. Fedora 29 станет последним выпуском с компонентами Fedora Atomic Host. После окончания цикла сопровождения Fedora 29 выпуск обновлений для Fedora Atomic Host будет полностью прекращён (ориентировочно в ноябре или декабре 2019 года).

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