![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Ln78 |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 274 Регистрация: 25.11.2006 Репутация: 13 Всего: 15 |
Внесу свои 3 копейки
![]()
То ли никто не заметил, то ли не стали придираться, но циклы неэквиваленты: или в первом с нуля, или во втором неравенство строгое.
Думаю, что потребуется не меньше пары лет. К сложным (в смысле именно вычислительных затрат) научным расчётам это относится в неменьшей степени. Единого метода оптимизации для таких задач не существует. В частности, нужно смотреть (можно профайлером, хотя, с некоторым опытом это несложно делать и "на глазок") те участки кода, которые либо в циклах, которые выполняются очень много раз, нет ли там одной и той же работы, выполняемой многократно, либо те, которые содержат вызовы разных функций типа синусов, думать, как можно формулы переписать по-другому, чтобы уменьшить вычислительную сложность задачи. |
||||
|
|||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 3 Всего: 43 |
Есть отличная статья.
Смысл ее такой: оптимизировать надо только узкие места. Оптимизировать все подряд - плохо. http://rsdn.ru/article/philosophy/Optimization.xml По теме: 1) Измени алгоритм(в том числе оптимизируй запросы к внешним источникам) 2) юзай профайлер для отлова узких мест 3) Замени компилятор на нормальный. |
|||
|
||||
Alexandering |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 14.9.2008 Репутация: нет Всего: нет |
Всем спасибо....
Удалось сократить время расчета до ~ 4часов... Лабу успешно сдал... Препод сказал, мол эту лабу в прошлые годы считали на старых процах за пару часов.... --------- Вывод: [Я-Ламо]. ---------------------------- nerezus 2) юзай профайлер для отлова узких мест - знать бы, что это такое...Я так понимаю это какой-то навороченный дебаггер? И для успешного его использования, надо ли фладеть Ассемблером? 3) Замени компилятор на нормальный. - нормальный, это какой?? И будет ли у меня "культурный шок" после перехода с Builder`a на него(Я так понимаю Вы о VisualStudio, или как там его,...) Это сообщение отредактировал(а) Alexandering - 19.10.2008, 16:17 |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
Вывод: существует более оптимальный алгоритм ![]() |
|||
|
||||
_GRIN_ |
|
||||
![]() одинокий падаван ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 18.11.2007 Где: Калуга Репутация: 1 Всего: 7 |
Alexandering, в кратце: профайлер - программа, которая анализирует время исполнения (возможно ещё и выделяемые ресурсы - у меня мало опыта) твоей программы, конкретно в VTune (тулза от Intel - может подключаться к Visual Studio) можно вывести какая иструкция (выражание) в твоей проге сколько жрёт тактов (прям напротив строки исходника циферка выводится) - сразу начинаешь удалять лишние циклы ![]() нормальный компилятор - обсуждение и разряда Holly Wars - имхо для процов интел лучше брать последний компилятор с сайта производителя (под другие процы не пробывал, так что советывать не буду). По поводу культурного шока - по идее ты скармливаешь компилятору исходник на С++ (который можешь набрать в блокноте) он создаст тебе объектник, а его линковщику - он создаст бинарник, можно настроить makefile (текстовый конфигуратор) и тогда вообще забить на IDE - мой друг (имхо настоящий гений) только так и работает, я правда пользуюсь студией ![]() Так что разок разберёшься как ему скормить исходник (компилятору) и всё - пиши исходники как раньше писал.
Не обязательно, но если владеешь - то большой плюс, так как понимаешь "механику" (другого слова не подобрал) работы создаваемой тулзы. удачи ... ![]() Это сообщение отредактировал(а) _GRIN_ - 19.10.2008, 23:04 -------------------- Дорогу осилит идущий |
||||
|
|||||
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
Ага, расскажите мне эту сказку. Проснитесь, игры теперь - это бизнес, а не развлеение или искусство: программистов засовывают в жёсткие рамки бюджетов. Посмотритен на недавнюю Spore. Какая ей нужна тачку? А теперь посмотрите что в ней реализованно? Что ЖРЁТ стоьлко ресурсов? Топорная окружающая среда? Или кривая скелетная анимация? ИЛи может ключные тени? Это сырой ширпотреб. Вот когда Кармак создал свою граф. библиотеку для первой кваки - вот где была оптимизация и мастерство, а нынче - это песочница. -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Можно подумать, что доктор ф-м наук не может быть дураком... Но на самом деле, скорее всего, он в последний раз сам писал программу году этак в 80 и на фортране - все его методы и советы (и код цикла, который с 1 начинается - явно оттуда). А лабу свою, которая 6 часов работает, за счет замены циклов ты не ускоришь... Разве что там какая-то явная глупость. Ну и тут оптимизация не поможет... -------------------- ... |
|||
|
||||
nerezus |
|
||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 3 Всего: 43 |
Нормально сделали ее, багов даже не заметил. |
||||
|
|||||
kroko |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 22.10.2008 Репутация: нет Всего: нет |
для того что бы оптимизировать код надо во первых
- отказаться от использования double и float и пользоватся только целочисленными переменными - за программировать свой собственные фунции синус конинус и.т далее которые работают с целыми числами - пересмотреть алгоритм ![]() могу поспорить что даже если первое и второе сделаешь то у тебя программа будет работать в несколько раз быстрее ![]() |
|||
|
||||
Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
низкоуровневые оптимизации следует рассматирвать ПОСЛЕ рассматривание алгоритмов. тем более что в паре с шаблонами c++ это не так уж и сложно. -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
vinter |
|
||||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
я думаю будет приступ с конвульсиями, по крайней мере я не видел еще ни кого, кто перешел с билдера на студию и это прошло бесследно для его организма ![]()
в журнале C'T была статья про компиляторы, Интел почти везде лучше VS компилятора. Но Intel так же платный. Т.е нахаляву высокой оптимизации не будет, а для мелких приложений внутреннего пользования мегаоптимизации не нужна.. |
||||
|
|||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 3 Всего: 43 |
|
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Работаю и на том и на другом (причем одновременно) - никаких последствий для организма не ощущаю ![]()
|
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
||||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |