Некоторые были выше других на голову, которую им отрубили.

Ваше мнение обо мне... ошибочно! ...

СУБД MongoDB переведена на новую лицензию, которая пока не проверена на открытость
Wed, 17 Oct 2018 08:17:28 +0300

Мероприятие по выявлению ошибок в LibreOffice 6.2 alpha 1
Tue, 16 Oct 2018 16:59:06 +0300

Firefox, Chrome, Edge и Safari прекратят поддержку TLS 1.0 и TLS 1.1
Tue, 16 Oct 2018 09:09:56 +0300

Проект KDE получил пожертвование размером 300 тысяч долларов
Mon, 15 Oct 2018 19:32:24 +0300

Открытый проект Bro переименован в Zeek из-за негативной коннотации
Mon, 15 Oct 2018 14:31:08 +0300

Выпуск операционной системы MidnightBSD 1.0
Sat, 13 Oct 2018 19:53:00 +0300

Разработчики Mozilla отложили прекращение доверия к сертификатам Symantec
Fri, 12 Oct 2018 09:25:48 +0300

Организация Linux Foundation выпустила LTSI-ветку на базе ядра Linux 4.14
Fri, 12 Oct 2018 08:52:28 +0300

Компания Microsoft присоединилась к инициативе по защите Linux от патентных претензий
Wed, 10 Oct 2018 19:00:13 +0300

В Fedora 30 решено поставлять по умолчанию сборку Firefox на базе Wayland
Wed, 10 Oct 2018 08:39:46 +0300

В GNOME 3.32 будет прекращена поддержка глобального меню
Tue, 09 Oct 2018 20:21:29 +0300

Влияние несущественных изменений кода на производительность при использовании GCC
Tue, 09 Oct 2018 08:53:30 +0300

Основан проект GoodFORM, который продолжит развитие свободных модулей к СУБД Redis
Mon, 08 Oct 2018 23:13:17 +0300

Google закрывает социальную сеть Google+
Mon, 08 Oct 2018 22:10:38 +0300

В Firefox будет добавлена поддержка формата изображений WebP
Sun, 07 Oct 2018 10:37:39 +0300

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

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

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

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

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

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

65.4026 75.6512 0.5827 9.4447

НОВОСТИ: Выпуск Wine 3.18 Sat, 13 Oct 2018 13:41:56 +0300

Состоялся экспериментальный выпуск открытой реализации Win32 API - Wine 3.18. С момента выпуска версии 3.17 было закрыто 46 отчётов об ошибках и внесено 179 изменений.

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