crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V   1 2 3 >  
Ответить в данную темуНачать новую тему
> Тотальная оптимизация
RazrFalcon
  опции профиля:
сообщение 11.10.2010, 20:24
Сообщение #1


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Решил не плодить кучу меких тем и написать все в одной
1) При динамической линковке производительность меньше чем при статической?
Как я понимаю да при статической все нужное от динам. либы войдет в бинарник.
2) Как собрать х64 приложение, есть Ubuntu 10.10 x64, только я не уверен (не знаю как проверить) что прога именно 64-х битная.
qmake /"мой путь"/cv.pro -r -spec linux-g++-64
Какие есть ключи для оптимизации, и есть ли они вообще. Где глянуть, пока кроме -static ничего не нашел.
3) Какие еще есть методы увеличения производительности. Важна каждая миллисекунда.
4) Читал на тему того, что даже разные версии gcc влияют на производительность.
Заранее спасибо. :)

Сообщение отредактировал RazrFalcon - 11.10.2010, 20:27
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 12.10.2010, 8:17
Сообщение #2


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


компилятор icc (Intel) - производительность в полтора-два раза быстрее на любом(!) процессоре в любой системе. однозначно. даже по сравнению с gcc. для линюкса есть полная бесплатная версия icc. отличная вещь.
статическая линковка на современных системах никак не влияет на скорость доступа (каждый процесс крутится в своём пространстве и если линки не отложенные (LAZY), то линковка всех входов-выходов происходит один раз, при старте программы, дальше всё происходит стандартно, как при вызове любых других функций из адресного пространства процесса).
лучшеее ускорение - отказ от виртуальных функций всех видов. вызовы через таблицы виртуальных методов тормозят работу. отказ от ввода-вывода любого плана (самое медленное в системах всех видов) и вынос ввода-вывода в отдельные малоприоритетные потоки, применение скоростных таймеров и системно-зависимых методов синхронизации. собственно, при использовании QT оптимизация может быть лишь относительной. у QT нет такой задачи. это кроссплатформенная библиотека и некоторые моменты могут быть вовсе не оптимальны. хотя на уровне миллисекунд может и проканает. это довольно медленное выполнение. только под вендой нужно юзать мультимедийные таймеры, если нужны тайминги и нельзя юзать стандартный Sleep - там очень большие интервалы (около 15 мс).

Сообщение отредактировал Iron Bug - 12.10.2010, 9:03
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 12.10.2010, 8:30
Сообщение #3


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Цитата(Iron Bug @ 12.10.2010, 11:17) *
отказ от виртуальных функций всех видов

да вот не всегда это возможно. Это надо очень хорошую причину иметь (программа под контроллер, например, или некий драйвер).

Сообщение отредактировал Алексей1153 - 12.10.2010, 8:32
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 12.10.2010, 8:41
Сообщение #4


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Я вот книжку умную прочел, так там пишут что "хорошее знание предметной области" зачастую лучшая оптимизация.
Уровни оптимизации существуют различные. Начиная от проектирования, выбора языка, кодирования .возможно критичные участки кода на acm и проч и проч. и так далее к выбору компилятора изучения его уровней оптимизации, может под него кое-где и код придется переписать.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 12.10.2010, 8:44
Сообщение #5


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


А ещё, нет смысла особо оптимизировать всё подряд в программе, если имеется хотя бы одно узкое по времени место :) Вот если это место удасться заоптимизировать до сравнимых с другими частями программы скоростей, тогда и
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 12.10.2010, 9:07
Сообщение #6


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


просто у меня большой опыт работы с риал-тайм программированием (собственно, моя основная работа и есть риал-тайм управление всяческими девайсами). я написала про то, что точно работает и работает эффективно. никакое "знание предметной области" не поможет, если компилятор хилый сам по себе. факт. никакое знание не поможет, если используются тормозные сторонние библиотеки. тоже не поспоришь.
так что тут надо выбирать: жёсткий риалтайм и скорость, или кроссплатформа и удобство программирования. это несовместимые в принципе вещи. надо выбирать нужный для себя уровень где-то между этими крайностями и чем-то жертвовать.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 12.10.2010, 9:08
Сообщение #7


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


RazrFalcon,
ты собираешься вопросы задавать про оптимизацию в Qt?
по-моему тему нужно перенести из Раздела Qt.Общие вопросы
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 12.10.2010, 9:21
Сообщение #8


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


Цитата(Алексей1153 @ 12.10.2010, 11:44) *
А ещё, нет смысла особо оптимизировать всё подряд в программе, если имеется хотя бы одно узкое по времени место Вот если это место удасться заоптимизировать до сравнимых с другими частями программы скоростей, тогда и

ну, тут не поспоришь. но иногда найти это узкое место иногда довольно сложно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 12.10.2010, 9:27
Сообщение #9


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Цитата(Iron Bug @ 12.10.2010, 10:07) *
никакое "знание предметной области" не поможет, если компилятор хилый сам по себе. факт.

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

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
CodeHunter
  опции профиля:
сообщение 12.10.2010, 9:29
Сообщение #10


Студент
*

Группа: Участник
Сообщений: 33
Регистрация: 26.8.2010
Пользователь №: 1982

Спасибо сказали: 1 раз(а)




Репутация:   0  


Цитата(Iron Bug @ 12.10.2010, 8:17) *
только под вендой нужно юзать мультимедийные таймеры, если нужны тайминги и нельзя юзать стандартный Sleep - там очень большие интервалы (около 15 мс).



Это ты про что ??? и к чему ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V   1 2 3 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.12.2024, 0:51