Тяжело сгонять муху курсором с монитора.

Hемец: — Я каждый вечер выпиваю три банки пива. ...

Названы открытые образовательные проекты, получившие 15 млн долларов от фонда XPRIZE
Sun, 19 May 2019 09:39:29 +0300

Cloudflare, Mozilla и Facebook развивают BinaryAST для ускорения загрузки JavaScript
Fri, 17 May 2019 20:13:47 +0300

Microsoft открыл код библиотеки векторного поиска, используемой в Bing
Fri, 17 May 2019 10:18:44 +0300

Фонд свободного ПО сертифицировал звуковые карты и WiFi-адаптеры ThinkPenguin
Fri, 17 May 2019 09:08:30 +0300

Фонд Khronos создаёт рабочую группу по развитию открытых стандартов 3D-коммерции
Thu, 16 May 2019 22:32:19 +0300

В Firefox будут убраны настройки для отключения многопроцессного режима
Thu, 16 May 2019 08:24:50 +0300

Intel развивает открытую прошивку ModernFW и гипервизор на языке Rust
Wed, 15 May 2019 23:41:59 +0300

Проект по избавлению GNOME от ошибок и недоработок, проявляющихся при работе поверх Wayland
Wed, 15 May 2019 12:14:47 +0300

В OpenBSD-CURRENT добавлена утилита sysupgrade для автоматического обновления
Tue, 14 May 2019 00:05:09 +0300

GitHub ввёл в строй реестр пакетов, совместимый с NPM, Docker, Maven, NuGet и RubyGems
Sat, 11 May 2019 15:36:17 +0300

Linux-дистрибутиву MagOS исполнилось 10 лет
Sat, 11 May 2019 06:35:35 +0300

В Chrome появится защита от передачи сторонних Cookie и скрытой идентификации
Fri, 10 May 2019 10:30:06 +0300

Сделка по покупке NGINX компанией F5 Networks успешно завершена
Thu, 09 May 2019 21:30:19 +0300

Релиз WordPress 5.2 с поддержкой проверки обновлений по цифровой подписи
Wed, 08 May 2019 14:41:39 +0300

Microsoft представил унифицированную платформу .NET 5 с поддержкой Linux и Android
Tue, 07 May 2019 13:04:25 +0300

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

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

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

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

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

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

64.6327 72.2464 0.5895 9.3492

НОВОСТИ: Названы открытые образовательные проекты, получившие 15 млн долл ... Sun, 19 May 2019 09:39:29 +0300

Фонд XPRIZE, занимающийся финансированием проектов, нацеленных на решение главных проблем, стоящих перед человечеством, объявил победителей премии Global Learning, призовой фонд которой составил 15 млн долларов.

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