Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Оптимизация кода 
V
    Опции темы
Alexandering
Дата 16.10.2008, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 14.9.2008

Репутация: нет
Всего: нет



Вобщем препод дал основные способы оптимизыции кода. Никак их не стал описывать, мол сами должны понимать. Вот у меня возникли некоторые вопросы.
1) По возможности заменять цикл for(i=1;i<=n;i++) на for(i=n;i>=0;i--)
Кто-нить может мне обьяснить, за счет чего тут выйгрышь? 
К тому же, у нас реализуется МетодКрупныхЧастиц(Давыдова), т.е. там основной цикл по времени, который просто нереально заменить вышеописанным способом.
2) Вложенные циклы типа for(i=1;i<=n;i++){ for(j=1;j<=m;j++){ for(k=1;k<=F;k++){... }}} заменять на один цикл....Тока как это проворачивать????
--------------
Я понимаю, что Вы щас отошлете к литературе...тока вот читать ее некогда...нужно уже скоро сдавать....а рабочая лаба на данный момент, для двухмерного случая считает около 6 часов реального времени(вот жопа)....На проце с частотой ~3.1 MHz
--------------
3) Действия "/","-" заменять на "*","+"
Только как, кпримеру, выражение A[i][j]-pMax можно переписать не используя вычетание? 
4) Ну и вопрос к Вам....как еще можно ускорить выполнение расчетной части???
Куча массивов для Температур,Давлений и прочего выделял динамически.....От очень удобной structure пришлось отказаться...памяти много жрет....
--------------
Жду...
PM MAIL   Вверх
Alek86
Дата 16.10.2008, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

Репутация: 21
Всего: 25



Цитата(Alexandering @  16.10.2008,  16:08 Найти цитируемый пост)
По возможности заменять цикл

бред какой-то


Цитата(Alexandering @  16.10.2008,  16:08 Найти цитируемый пост)
Вложенные циклы типа for(i=1;i<=n;i++){ for(j=1;j<=m;j++){ for(k=1;k<=F;k++){... }}} заменять на один цикл....

зависит от того, что в теле циклов делается, но выигрыш очень вряд ли большой получится


--------------------
user posted image    user posted image
PM MAIL   Вверх
mes
Дата 16.10.2008, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(Alexandering @  16.10.2008,  16:08 Найти цитируемый пост)
для двухмерного случая считает около 6 часов

на циклах Вы не съэкономите столько - расход ресурсов у Вас в другом месте.



--------------------
PM MAIL WWW   Вверх
Alek86
Дата 16.10.2008, 16:22 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

Репутация: 21
Всего: 25



Цитата(Alexandering @  16.10.2008,  16:08 Найти цитируемый пост)
Вобщем препод дал основные способы оптимизыции кода. Никак их не стал описывать, мол сами должны понимать.

препод или большой приколист или дурак
главные принципы оптимизации кода - глобальный пересмотр кода
а это такие мелочи, на которые внимание почти никто не обращает


--------------------
user posted image    user posted image
PM MAIL   Вверх
Alexandering
Дата 16.10.2008, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 14.9.2008

Репутация: нет
Всего: нет



Цитата(Alek86 @  16.10.2008,  16:18 Найти цитируемый пост)
бред какой-то

Вот и мне не понятно...


Цитата(mes @  16.10.2008,  16:18 Найти цитируемый пост)
на циклах Вы не съэкономите столько

А я почему-то всегда думал, что тормоза как раз из-за банальных повторений каких-нить не необходимых операций в циклах...
Ну в принципе на выходе я имею файл со всеми мне нужными данными в размере 1,5 ГБ.(Вот из-зи этого тормоза probably???) И это пока тестовая прогонка алгоритма...Заменил все типы переменных с double на float размер выходного файла снизился до 1 ГБ. Как тут еще покряхтеть - ума не приложу....А ведь это потом надо будет визуализировать...

Цитата(Alek86 @  16.10.2008,  16:22 Найти цитируемый пост)
препод или большой приколист или дурак

Ну вообще-то доктор ф.-м.н. все время в отЪездах...времени на нас нет..поэтому ниче не обЪясняет...
-----------------
А от себя предложите пож-та самые простые методы борьбы с тормозами....В алгоритме уже итак убрал все процедуры...Почти ни какой "логики" не осталось.
-----------------
Да, если что, компилятор - C++Builder 6.0
PM MAIL   Вверх
mes
Дата 16.10.2008, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(Alexandering @  16.10.2008,  16:35 Найти цитируемый пост)
А я почему-то всегда думал, что тормоза как раз из-за банальных повторений каких-нить не необходимых операций в циклах...

ага зачастую именно из за этого.
Цитата(mes @  16.10.2008,  16:18 Найти цитируемый пост)
на циклах Вы не съэкономите столько

имелось ввиду на замене знака. Смотреть надо что делается внутри него.

Цитата(Alexandering @  16.10.2008,  16:35 Найти цитируемый пост)
Как тут еще покряхтеть - ума не приложу

выложите алгоритм, тогда может что нибудь видно будет )


--------------------
PM MAIL WWW   Вверх
Rickert
Дата 17.10.2008, 02:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 0
Всего: 52



Цитата(Alexandering @  16.10.2008,  16:08 Найти цитируемый пост)
3) Действия "/","-" заменять на "*","+". 
Только как, кпримеру, выражение A[i][j]-pMax можно переписать не используя вычетание? 

A[i][j] + (-pMax)

Цитата(Alexandering @  16.10.2008,  16:08 Найти цитируемый пост)
for(i=1;i<=n;i++) на for(i=n;i>=0;i--)

Где-то на форуме это обсуждалось, дизассемблировалось и приводились доводы. Но имхо, как уже упоминалось: это слишком нечтожные оптимизации, чтобы выиграть реальное время. От них вы получите максимум прирост в пару минут по быстроте.


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Mayk
Дата 17.10.2008, 08:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 45
Всего: 134



Цитата(Rickert @  17.10.2008,  06:32 Найти цитируемый пост)
От них вы получите максимум прирост в пару минут по быстроте. 

разве что при допущении что до этого программа исполнялась где-то пару недель  smile 

Цитата(Alexandering @  16.10.2008,  20:08 Найти цитируемый пост)
.На проце с частотой ~3.1 MHz

это опечатка?

Цитата(Alexandering @  16.10.2008,  20:08 Найти цитируемый пост)
3) Действия "/","-" заменять на "*","+". 

минус на плюс? что за бредятина? а деление на константу компиляторы сами умеют оптимизировать.

Цитата(Alexandering @  16.10.2008,  20:08 Найти цитируемый пост)

4) Ну и вопрос к Вам....как еще можно ускорить выполнение расчетной части???
Куча массивов для Температур,Давлений и прочего выделял динамически.....От очень удобной structure пришлось отказаться...памяти много жрет....

Во-перых прогони под профайлером. 
во-вторых опять прогони под профайлером. 
valrgrind к примеру умеет показывать как часто происходят промахи мимо кеша, их тоже можно оптимизировать.


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Lazin
Дата 17.10.2008, 08:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Цитата(Alexandering @  16.10.2008,  16:08 Найти цитируемый пост)
1) По возможности заменять цикл for(i=1;i<=n;i++) на for(i=n;i>=0;i--)
Кто-нить может мне обьяснить, за счет чего тут выйгрышь?

сравнение с нулем немного эффективнее чем сравнение с числом

Цитата(Alexandering @  16.10.2008,  16:08 Найти цитируемый пост)
2) Вложенные циклы типа for(i=1;i<=n;i++){ for(j=1;j<=m;j++){ for(k=1;k<=F;k++){... }}} заменять на один цикл....Тока как это проворачивать????

видимо здесь имеется ввиду оптимизация самого алгоритма, что-бы вместо сложности O(n*m*F), получить меньшую сложность
PM MAIL Skype GTalk   Вверх
MAKCim
Дата 17.10.2008, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Цитата(Alexandering @  16.10.2008,  16:08 Найти цитируемый пост)
По возможности заменять цикл for(i=1;i<=n;i++) на for(i=n;i>=0;i--)

сравни код
Код

    mov ecx, dword ptr [n]
    mov eax, 1
b_cycle:
    cmp eax, ecx
    jg e_cycle
; some actions
    inc eax
    jmp b_cycle
e_cycle:

и
Код

    mov eax, dword ptr [n]
    cmp eax, 0
    jl e_cycle
b_cycle:
; some actions
    dec eax
    jns @B
e_cycle:



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Lycifer
Дата 17.10.2008, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 4.11.2007

Репутация: нет
Всего: нет



Оптимизация кода сейчас не актуально(только на real time, или где ресурсы по не сколько байт играют роль), алгоритм влияет на скорость работы, таже CLR где операции долше выполняются не сильно отстанет от С++(в не которых местах превосходит, в не сколько раз)
PM MAIL ICQ   Вверх
MAKCim
Дата 17.10.2008, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Цитата(Lycifer @  17.10.2008,  09:42 Найти цитируемый пост)
Оптимизация кода сейчас не актуально

вопрос был не в актуальности  smile 


Цитата(Lycifer @  17.10.2008,  09:42 Найти цитируемый пост)
в не которых местах превосходит, в не сколько раз

1. примеры таких мест можно?
2. так уж в несколько раз?  smile 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
MTWizard
Дата 17.10.2008, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 8.10.2007
Где: Київ

Репутация: 3
Всего: 4



Цитата(Alexandering @  16.10.2008,  16:35 Найти цитируемый пост)
Да, если что, компилятор - C++Builder 6.0

Вот это как раз может быть причиной медленной работы. Этот компилер генерирует отвратительно оптимизированный код, который сравним по скорости с кодом Visual C++ 2003 без оптимизации!!!
Смени компилятор - Visual C++ 2008 или вообще Intel C++ последний и удивись, насколько быстрее заработал тот же алгоритм.

Добавлено @ 11:50
Кстати, насчёт всех оптимизаций, приведённых преподом - нормальные компиляторы их все делают сами (Builder 6 к нормальным не относится), потому не надо уродовать код, делая за компилер его работу

Это сообщение отредактировал(а) MTWizard - 17.10.2008, 11:50
PM MAIL   Вверх
Rickert
Дата 17.10.2008, 11:58 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 0
Всего: 52



Цитата(Lycifer @  17.10.2008,  09:42 Найти цитируемый пост)
Оптимизация кода сейчас не актуально(только на real time, или где ресурсы по не сколько байт играют роль), 

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


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Alek86
Дата 17.10.2008, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

Репутация: 21
Всего: 25



Rickert, к гейм девелопменту это не относится. уж они-то обычно за каждый бит (такт) дерутся


Это сообщение отредактировал(а) Alek86 - 17.10.2008, 12:08


--------------------
user posted image    user posted image
PM MAIL   Вверх
Ln78
Дата 17.10.2008, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 25.11.2006

Репутация: 13
Всего: 15



Внесу свои 3 копейки smile 
Цитата(Alexandering @  16.10.2008,  17:08 Найти цитируемый пост)
По возможности заменять цикл for(i=1;i<=n;i++) на for(i=n;i>=0;i--)

То ли никто не заметил, то ли не стали придираться, но циклы неэквиваленты: или в первом с нуля, или во втором неравенство строгое.
Цитата(Mayk @  17.10.2008,  09:17 Найти цитируемый пост)
разве что при допущении что до этого программа исполнялась где-то пару недель  

Думаю, что потребуется не меньше пары лет. 
Цитата(Alek86 @  17.10.2008,  13:07 Найти цитируемый пост)
к гейм девелопменту это не относится

К сложным (в смысле именно вычислительных затрат) научным расчётам это относится в неменьшей степени. Единого метода оптимизации для таких задач не существует. В частности, нужно смотреть (можно профайлером, хотя, с некоторым опытом это несложно делать и "на глазок") те участки кода, которые либо в циклах, которые выполняются очень много раз, нет ли там одной и той же работы, выполняемой многократно, либо те, которые содержат вызовы разных функций типа синусов, думать, как можно формулы переписать по-другому, чтобы уменьшить вычислительную сложность задачи.
PM MAIL   Вверх
nerezus
Дата 18.10.2008, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 3
Всего: 43



Есть отличная статья.
Смысл ее такой: оптимизировать надо только узкие места.
Оптимизировать все подряд - плохо.

http://rsdn.ru/article/philosophy/Optimization.xml

По теме: 
1) Измени алгоритм(в том числе оптимизируй запросы к внешним источникам)
2) юзай профайлер для отлова узких мест
3) Замени компилятор на нормальный.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Alexandering
Дата 19.10.2008, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 14.9.2008

Репутация: нет
Всего: нет



Всем спасибо....
Удалось сократить время расчета до ~ 4часов...
Лабу успешно сдал...
Препод сказал, мол эту лабу в прошлые годы считали на старых процах за пару часов....
---------
Вывод: [Я-Ламо].

----------------------------
nerezus
2) юзай профайлер для отлова узких мест
 - знать бы, что это такое...Я так понимаю это какой-то навороченный дебаггер? И для успешного его использования, надо ли фладеть Ассемблером?
3) Замени компилятор на нормальный.
 - нормальный, это какой?? И будет ли у меня "культурный шок" после перехода с Builder`a на него(Я так понимаю Вы о VisualStudio, или как там его,...)

Это сообщение отредактировал(а) Alexandering - 19.10.2008, 16:17
PM MAIL   Вверх
Lazin
Дата 19.10.2008, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Цитата(Alexandering @  19.10.2008,  16:12 Найти цитируемый пост)
Вывод: [Я-Ламо].

Вывод: существует более оптимальный алгоритм smile 
PM MAIL Skype GTalk   Вверх
_GRIN_
Дата 19.10.2008, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


одинокий падаван
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 18.11.2007
Где: Калуга

Репутация: 1
Всего: 7



Цитата

2) юзай профайлер для отлова узких мест
 - знать бы, что это такое...Я так понимаю это какой-то навороченный дебаггер? И для успешного его использования, надо ли фладеть Ассемблером?
3) Замени компилятор на нормальный.
 - нормальный, это какой?? И будет ли у меня "культурный шок" после перехода с Builder`a на него(Я так понимаю Вы о VisualStudio, или как там его,...)


Alexandering, в кратце:
профайлер - программа, которая анализирует время исполнения (возможно ещё и выделяемые ресурсы - у меня мало опыта) твоей программы, конкретно в VTune (тулза от Intel - может подключаться к Visual Studio) можно вывести какая иструкция (выражание) в твоей проге сколько жрёт тактов (прям напротив строки исходника циферка выводится) - сразу начинаешь удалять лишние циклы smile

нормальный компилятор - обсуждение и разряда Holly Wars - имхо для процов интел лучше брать последний компилятор с сайта производителя (под другие процы не пробывал, так что советывать не буду). По поводу культурного шока - по идее ты скармливаешь компилятору исходник на С++ (который можешь набрать в блокноте) он создаст тебе объектник, а его линковщику - он создаст бинарник, можно настроить makefile (текстовый конфигуратор) и тогда вообще забить на IDE - мой друг (имхо настоящий гений) только так и работает, я правда пользуюсь студией smile
Так что разок разберёшься как ему скормить исходник (компилятору) и всё - пиши исходники как раньше писал.

Цитата

надо ли фладеть Ассемблером


Не обязательно, но если владеешь - то большой плюс, так как понимаешь "механику" (другого слова не подобрал) работы создаваемой тулзы.

удачи ... smile

Это сообщение отредактировал(а) _GRIN_ - 19.10.2008, 23:04


--------------------
Дорогу осилит идущий
PM MAIL Skype   Вверх
Rickert
Дата 20.10.2008, 03:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 0
Всего: 52



Цитата(Alek86 @  17.10.2008,  12:07 Найти цитируемый пост)
Rickert, к гейм девелопменту это не относится. уж они-то обычно за каждый бит (такт) дерутся

Ага, расскажите мне эту сказку. Проснитесь, игры теперь - это бизнес, а не развлеение или искусство: программистов засовывают в жёсткие рамки бюджетов. Посмотритен на недавнюю Spore.
Какая ей нужна тачку? А теперь посмотрите что в ней реализованно? Что ЖРЁТ стоьлко ресурсов? Топорная окружающая среда? Или кривая скелетная анимация? ИЛи может ключные тени? Это сырой ширпотреб. Вот когда Кармак создал свою граф. библиотеку для первой кваки - вот где была оптимизация и мастерство, а нынче - это песочница.


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Earnest
Дата 20.10.2008, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



Цитата(Alexandering @  16.10.2008,  17:35 Найти цитируемый пост)
Ну вообще-то доктор ф.-м.н.

Можно подумать, что доктор ф-м наук не может быть дураком... Но на самом деле, скорее всего, он в последний раз сам писал программу году этак в 80 и на фортране - все его методы и советы (и код цикла, который с 1 начинается - явно оттуда). 
А лабу свою, которая 6 часов работает, за счет замены циклов ты не ускоришь... Разве что там какая-то явная глупость. Ну и тут оптимизация не поможет...


--------------------
...
PM   Вверх
nerezus
Дата 20.10.2008, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 3
Всего: 43



Цитата

 - знать бы, что это такое...Я так понимаю это какой-то навороченный дебаггер? И для успешного его использования, надо ли фладеть Ассемблером?
 На вопросы "Что такое ***" лучше всего ответит гугл. Это аксиома.

Цитата

Какая ей нужна тачку? А теперь посмотрите что в ней реализованно? Что ЖРЁТ стоьлко ресурсов? Топорная окружающая среда? Или кривая скелетная анимация? ИЛи может ключные тени? Это сырой ширпотреб.
 Летает на максималках на далеко не топовой машинке.
Нормально сделали ее, багов даже не заметил.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
kroko
  Дата 22.10.2008, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 22.10.2008

Репутация: нет
Всего: нет



для того что бы оптимизировать код надо во первых

-  отказаться от использования double и float и пользоватся только целочисленными переменными 

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

- пересмотреть алгоритм  smile 

могу поспорить что даже если первое и второе сделаешь то у тебя программа будет работать в несколько раз быстрее  smile 
PM MAIL   Вверх
Mayk
Дата 22.10.2008, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 45
Всего: 134




Цитата(kroko @  22.10.2008,  20:54 Найти цитируемый пост)
для того что бы оптимизировать код надо во первых

-  отказаться от использования double и float и пользоватся только целочисленными переменными 

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

- пересмотреть алгоритм 

 низкоуровневые оптимизации следует рассматирвать ПОСЛЕ рассматривание алгоритмов.
тем более что в паре с шаблонами c++ это не так уж и сложно.



--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
vinter
Дата 22.10.2008, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



Цитата(Alexandering @  19.10.2008,  17:12 Найти цитируемый пост)
И будет ли у меня "культурный шок" после перехода с Builder`a на него(Я так понимаю Вы о VisualStudio, или как там его,...)

я думаю будет приступ с конвульсиями, по крайней мере я не видел еще ни кого, кто перешел с билдера на студию и это прошло бесследно для его организма smile

Цитата(_GRIN_ @  20.10.2008,  00:00 Найти цитируемый пост)
 имхо для процов интел лучше брать последний компилятор с сайта производителя (под другие процы не пробывал, так что советывать не буду)

в журнале C'T была статья про компиляторы, Интел почти везде лучше VS компилятора. Но Intel так же платный. Т.е нахаляву высокой оптимизации не будет, а для мелких приложений внутреннего пользования мегаоптимизации не нужна..


--------------------
Мой блог
PM MAIL WWW   Вверх
nerezus
Дата 22.10.2008, 20:06 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 3
Всего: 43



Цитата

отказаться от использования double и float и пользоватся только целочисленными переменными
 И вообще отказаться от переменных, а сразу писать константу. Пример идеальной программы: 21


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
xvr
Дата 23.10.2008, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(vinter @ 22.10.2008,  17:46)
Цитата(Alexandering @  19.10.2008,  17:12 Найти цитируемый пост)
И будет ли у меня "культурный шок" после перехода с Builder`a на него(Я так понимаю Вы о VisualStudio, или как там его,...)

я думаю будет приступ с конвульсиями, по крайней мере я не видел еще ни кого, кто перешел с билдера на студию и это прошло бесследно для его организма smile


Работаю и на том и на другом (причем одновременно) - никаких последствий для организма не ощущаю  smile 

Цитата

в журнале C'T была статья про компиляторы, Интел почти везде лучше VS компилятора. Но Intel так же платный. Т.е нахаляву высокой оптимизации не будет, а для мелких приложений внутреннего пользования мегаоптимизации не нужна..
На сайте Intel'а бесплатно раздается студенческая некомерческая версия их компиляторов. Отличий в уровне оптимизации вроде нет.

PM MAIL   Вверх
vinter
Дата 23.10.2008, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



Цитата(xvr @  23.10.2008,  12:56 Найти цитируемый пост)
 Отличий в уровне оптимизации вроде нет.

есть, если интересно могу выложить в чем.

Добавлено через 24 секунды
Цитата(xvr @  23.10.2008,  12:56 Найти цитируемый пост)
Работаю и на том и на другом (причем одновременно) - никаких последствий для организма не ощущаю

начинал с чего?


--------------------
Мой блог
PM MAIL WWW   Вверх
xvr
Дата 23.10.2008, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(vinter @ 23.10.2008,  13:07)
Цитата(xvr @  23.10.2008,  12:56 Найти цитируемый пост)
 Отличий в уровне оптимизации вроде нет.

есть, если интересно могу выложить в чем.

Выложи, очень интересно

Цитата

Добавлено @ 13:07
Цитата(xvr @  23.10.2008,  12:56 Найти цитируемый пост)
Работаю и на том и на другом (причем одновременно) - никаких последствий для организма не ощущаю

начинал с чего?
С BC 3.1 (лет так 20 назад)

PM MAIL   Вверх
Earnest
Дата 23.10.2008, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



Цитата(xvr @  23.10.2008,  17:32 Найти цитируемый пост)
С BC 3.1 (лет так 20 назад)

Тогда не считается. 
Имеются в виду те, кто изучал программирование в "визуальной" среде: мышкой компоненты к форме прибивал.
А у всех, кто начинал с Доса, к визардам иммунитет.
 smile  smile 


--------------------
...
PM   Вверх
vinter
Дата 23.10.2008, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



Цитата

компилятор от Intel имеет три разные версии Standard, Proffessional и Compiler Suite. Standard отличается от проффесиональной только отсутсвием доп библиотек, Threading Building Blocks, Perfomance primitive, Math Kernel Library.

Стандарт - 12700
Проф - 17000
Академическая - 4512
Все это в рублях


--------------------
Мой блог
PM MAIL WWW   Вверх
bsa
Дата 23.10.2008, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



vinter, а под линукс есть еще и бесплатная версия  smile 
PM   Вверх
xvr
Дата 23.10.2008, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(vinter @ 23.10.2008,  17:33)
Цитата

компилятор от Intel имеет три разные версии Standard, Proffessional и Compiler Suite. Standard отличается от проффесиональной только отсутсвием доп библиотек, Threading Building Blocks, Perfomance primitive, Math Kernel Library.

Стандарт - 12700
Проф - 17000
Академическая - 4512
Все это в рублях

Это не отличие в компиляторе, а отличие в наборе поставляемых библиотек. На уровень оптимизации это никак не сказывается. Кроме того, можно скачать evaluation версию, она полнофункциональна (включая библиотеки)
Или перебирайтесь под Linux - там полнофункциональная некомерческая версия:
Цитата

Q. What does noncommercial mean?
A. Non-commercial means that you are not getting compensated in any form for the products and/or services you develop using these Intel® Software Products.

Q. Do the features vary between the non-commercial and commercial product?
A. At the current time, the non-commercial product offerings have the same features as the commercial product. However, Intel reserves the right to change this policy without notice at any time. In addition, the licenses provided include limited support and are not renewable.

Q. Is there a specific time period for this offering?
A. No, there is no specific time frame for this offer.

Q. Are there any plans to offer all Intel® Software Development Products under this license?
A. Intel will continue to examine its product portfolio and make changes to the product offerings on an ongoing basis. This may include adding or removing products from this offering.

Q. Are there any plans to offer non-commercial products for other operating systems?
A. At the current time, the non-commercial products are only offered on Linux*.


Добавлено через 12 минут и 22 секунды
Цитата(Earnest @ 23.10.2008,  17:10)
Цитата(xvr @  23.10.2008,  17:32 Найти цитируемый пост)
С BC 3.1 (лет так 20 назад)

Тогда не считается. 

 smile 

Цитата

Имеются в виду те, кто изучал программирование в "визуальной" среде: мышкой компоненты к форме прибивал.
А если они умеют ТОЛЬКО 'мышкой компоненты к форме прибивать' или искренне считают, что Builder или Delphy их не пустят дальше своих форм (с прибитыми мышкой компонентами), то они програмистами не являются (IMHO).

Равно как и автор бестелера if (flag.Length()<=4) // check for 'true'  smile 

PM MAIL   Вверх
Ln78
Дата 24.10.2008, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 25.11.2006

Репутация: 13
Всего: 15



Цитата(xvr @  23.10.2008,  17:32 Найти цитируемый пост)
С BC 3.1 (лет так 20 назад)

 smile Тем, кто начинал с машинных кодов и перфоратора Джуки для ввода кода, и BC 3.1 мёдом будет казаться. Насколько я помню, самому BC 3.1 всё же меньше 20, до него я пользовался TC 2.0, и ведь тоже казалось большим прогрессом, хотя самих отличий сейчас уже не помню.

PM MAIL   Вверх
J0ker
Дата 24.10.2008, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 4
Всего: 14



борланд всегда грешил излишней кастомизацией языков


--------------------
user posted image
PM MAIL   Вверх
likehood
Дата 24.10.2008, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


666
**


Профиль
Группа: Участник
Сообщений: 536
Регистрация: 21.12.2005

Репутация: 8
Всего: 24



Цитата(Alexandering @  16.10.2008,  16:35 Найти цитируемый пост)
Ну в принципе на выходе я имею файл со всеми мне нужными данными в размере 1,5 ГБ.(Вот из-зи этого тормоза probably???)


Кстати, вполне возможно. Я как-то имел дело с программой, в которой промежуточные данные хранились в множестве мелких файлов (видимо, автор не знал, как на Делфи реализовать map, и использовал для этого файловую систему). Программа обрабатывала данные за несолько часов. Когда я переписал ее по-человечески (без существенного изменения алгоритма), она стала обрабатывать те же данные за две минуты. Так что работу с файлами не стоит сбрасывать со счетов.
PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1999 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.