The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Выпуск утилиты для резервного копирования rclone 1.35"
Отправлено Аноним, 13-Янв-17 08:16 
> OK, я не верно сказал. LTO может вынести и функции целиком.

Это его нормальное состояние, я бы сказал.

> Просто затраты (как CPU, так и RAM) на это будут гораздо большими,
> чем с -ffunction-sections -fdata-sections + -Wl,--gc-sections.

А это другой вопрос. В свежих gcc, кстати, LTO основательно разогнали а потребление RAM убавили.

> Точно не помню, сколько памяти надо для сборки FF с LTO, но за 4GB перевалило давно.

Вот это не знаю, не пробовал такого монстра. На 5-меговой софтине на плюсах лопало около гига памяти, чтоли. Кстати LTO агрессивно оптимизировали по ресурсам в gcc 5.x/6.x, да и скорость компиляции прилично подтянули, особенно на уровнях с оптимизацией.

> цель скорость исполнения - однозначно LTO, но бинарник из-за inline может
> стать и больше.

В среднем по больнице результат таков что прога сдувается по размеру а скорость такая же или чуть лучше. Т.е. я бы больше радовался уменьщению кода.

> Ну на AVR я как раз -fwhole-program и использую. Она несовместима с LTO - используется вместо LTO.

Насколько я помню -fwhole-program это какой-то хинт LTO-оптимизатору на самом деле, что надо полный анализ по всей программе и можно сделать небезопасные маневры, так что снаружи функции вызывать будет нельзя. Но я не знаю что там на авр сейчас. У убунтуев и дебиана для них почему-то gcc древний, 4.9 чтоли. Для ARM у меня такой же версии как и системный.

> Выигрываем 10% по скорости, проигрываем 900% - 9000% по памяти/кэшу.

Не вижу, опять же. Если проигрыш по кэшу - должны быть просадки скорости как раз? Да и раз кода меньше - то и кэш свободнее? Можно конечно perf-ом потыкаться если принципиально.

А еще - у cortex M кэша нет, микроконтроллеры же.

> ХЗ как оно может оценить пользу от inline, не имея на входе типичных данных.

Прикинув как этот размер кода vs заскипаный на этом пролог/эпилог соотносится?

> Может эта функция вызывается раз в году? А память будет расходоваться всегда.

Опять же - не вижу раздувания кода от LTO.

> к длине функции (можно подрегулировать руками) - если функция больше определенной
> длинны - inline не используется.

Значит мой склероз мне не врет, как-то так.

>> Вы про profile-guided optimization чтоли?
> Да оно.

Вот с ним я не разбирался.

> Зависит от задачи. В теории - имея типичные входные данные компилятор значительно
> лучше сможет выполнить оптимизацию.

Оно как бы да, но возни много. Ну его такое кроме крайних случаев.

> Да, и постоянно новые способы добавляют. С циклами он вообще много интересного
> умеет. При выходе новых версий gcc часто примеры кода показывают и
> как он его хорошо разбирает и перекомпоновывает.

У gcc нынче один только ман на командлайн читать можно устать :)

зы мне надоели местные модеры, меня они потерли раза три а красования леда по жизни не трогают, давайте может куда-нибудь на ресурс с более комфортной атмосферой, а? я от такой модерации устал, она не способствует конструктивным дискуссиям, вообще совсем.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру