Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: gcc компиляция с обратной связью  (Прочитано 1210 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн erthalion

  • Автор темы
  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
Решил попробовать собрать один ресурсоемкий проект с опцией -fprofile-use. Для получения информации о профилировании компилировал с ключами -fprofile-generate -fvpt -fbranch-probabilities -fprofile-arcs -ftest-coverage (на выходе все как надо-*.gcda)

Только вот в итоге время работы программы только увеличилось... В чем подвох? В неправильном использовании или в том, что данный подход может в некоторых случаях не давать нужного результата?

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: gcc компиляция с обратной связью
« Ответ #1 : 26 Мая 2012, 14:33:10 »
Время работы под профайлером увеличивается за счёт того что софтина считает все вызовы всех процедур. Такая сборка необходима чтобы выяснить на что программа тратит ресурсы и обладая этими знаниями оптимизировать то что надо оптимизировать а не то что кажется надо или хочется. А клиенту отдают оптимизированный релиз без профилировщика

Пользователь решил продолжить мысль 26 Мая 2012, 14:37:19:
Профилировщик не Волшевная пилюля. Результатами его работы нужно уметь пользоваться
« Последнее редактирование: 26 Мая 2012, 14:37:19 от Yurror »

Оффлайн gavru

  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
    • Traffic and Protection Учёт трафика, файрвол, учёт телефонных звонков Мини АТС
Re: gcc компиляция с обратной связью
« Ответ #2 : 27 Мая 2012, 12:48:13 »
Цитировать
Только вот в итоге время работы программы только увеличилось... В чем подвох? В неправильном использовании или в том, что данный подход может в некоторых случаях не давать нужного результата?

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

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: gcc компиляция с обратной связью
« Ответ #3 : 27 Мая 2012, 18:58:14 »
ну он и взял. только не понял что с ним дальше делать

Оффлайн erthalion

  • Автор темы
  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
Re: gcc компиляция с обратной связью
« Ответ #4 : 31 Мая 2012, 19:49:21 »
Ну вообще то и над кодом я поработал и с профилировщиком повозился -- а конкретно эту вещь хотел попробовать из научного интереса.
Yurror,я полагал, что после первого выполнения программы (под отладчиком) собираются данные, на основе которых можно затем скомпилировать (автоматом с -fprofile-use) более оптимизированный бинарник (никакого клиента, вычислительная программа). Это не так?

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: gcc компиляция с обратной связью
« Ответ #5 : 02 Июня 2012, 21:24:43 »
У любой программы есть заказчик. Даже если этот заказчик ты сам.

Да, это не так.

Гугл по -fprofile-use вообще ничего не находит. Это должно было тебя насторожить
-pg собирает информацию о выполнении программы и её узких местах чтобы разработчик программы знал что именно надо оптимизировать.
Как это уже другой вопрос.
Автоматом тут никак. Нужен мозг живого человека (я не призываю приносить жертвы, но к шаманам обратиться придётся)

Если с шаманами не лады попробуй http://gcc.gnu.org/wiki/Graphite им firefox оптимизируют. Не зная деталей ничего лучше предложить не могу.

Точно могу сказать лишь одно: тебе придётся выбирать чем и за что платить. Или деньги на кластер где прога уложится в заданное время без оптимизации или разработчику который сделает так чтобы кластер не понадобился или своим временем пока ты будешь ждать окончания расчётов на обычной персоналке.

Оффлайн erthalion

  • Автор темы
  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
Re: gcc компиляция с обратной связью
« Ответ #6 : 03 Июня 2012, 17:47:28 »
Хм...нашел вот это - собственно, не был в курсе, что для линковщика тоже надо указывать профилирование. С учетом этого получил тот результат, на который рассчитывал - выполнение программы стало занимать меньше времени.

 

Страница сгенерирована за 0.04 секунд. Запросов: 25.