|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.06.2011, 09:45 | #1 |
Пользователь
Регистрация: 07.06.2011
Сообщений: 28
|
Методы оптимизации кода
Написал статью по оптимизации кода на С++. Ее можно почитать тут:
http://itw66.ru/blog/c_plus_plus/13.html А вы какие еще способы оптимизации кода знаете? (я не говорю про оптимизацию алгоритмов. Речь идет про код вообще)
Портал "It Works" (http://itw66.ru), на котором веду множество блогов по программированию и философии (FiloXSee).
|
07.06.2011, 11:36 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
СПАМ о своих статьях в http://programmersforum.ru/forumdisplay.php?f=24
|
07.06.2011, 12:38 | #3 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
Код:
да и кстати, в этом примере разница от выбора инкремента ЕСТЬ, так что вообще неясно, как тут эффективность можно сравнивать
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance Последний раз редактировалось pproger; 07.06.2011 в 13:01. |
07.06.2011, 13:46 | #4 |
Пользователь
Регистрация: 07.06.2011
Сообщений: 28
|
Читай внимательнее: смысл в этом примере не показать что прединкремент бывает оптимальнее, а рассказать, что процессор может одновременно выполнять различные действия. Например чтение из памяти, вычисление в целых и вещественных числах могут выполняться параллельно.
И тут уже от того как построен код (т.е. от последовательности операторов) может зависеть скорость его выполнения. В данном примере, в первом случае процессор может одновременно (без ожидания сложения) начать складывать и получать значение по адресу в массиве, а во втором случае он это будет делать последовательно.
Портал "It Works" (http://itw66.ru), на котором веду множество блогов по программированию и философии (FiloXSee).
|
07.06.2011, 13:47 | #5 |
Пользователь
Регистрация: 07.06.2011
Сообщений: 28
|
Конечно, если брать только процессоры Intel и компиляторы от Microsoft, то некоторые примеры почти бессмысленны. Но полезно понимать как работает процессор и как писать более эффективный код.
Портал "It Works" (http://itw66.ru), на котором веду множество блогов по программированию и философии (FiloXSee).
|
07.06.2011, 13:53 | #6 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
это вам не команды FPU, а команды линейные.
если массив целых чисел(int), то все сведется к inc ecx lea eax,[eax+ecx*4] mov eax,[eax] они выполняются строго последовательно. тоже и про целочисленное умножение, которое есть цикл сложения.(это больше ко второму примеру) и где в первом примере вообще нецелые числа? Цитата:
разница может сказатся при SIMD(вроде так, точно не помню) да и где вообще типы данных? многие примеры актуальны лишь при определенных типах. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 07.06.2011 в 14:01. |
|
07.06.2011, 13:53 | #7 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2FiloXSee
тогда неудачный пример ты выбрал. откуда нам известно, чем является i? может это итератор. в этом случае заявление об оптимальности первого варианта неверно
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
07.06.2011, 14:23 | #8 |
Форумчанин
Регистрация: 15.12.2010
Сообщений: 398
|
Не плохая статейка, если не читать её с мыслями как бы выпендриться на форуме в ответах.
|
07.06.2011, 14:25 | #9 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
07.06.2011, 14:56 | #10 |
Software Engineer
Участник клуба
Регистрация: 07.04.2007
Сообщений: 1,618
|
Ерунда это все. Почти все подобные извращения компилятор в состоянии провести сам. Давайте еще умножение заменять сложением, или побитовыми сдвигами, так же эффективнее.
Оптимизировать алгоритмы надо, а не ерундой заниматься
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Методы оптимизации | Lazio | Фриланс | 3 | 11.12.2010 12:05 |
методы оптимизации первого порядка | Olenka555 | Помощь студентам | 0 | 21.05.2010 16:43 |
Методы оптимизации в Excel | Raikhman | Microsoft Office Excel | 2 | 10.02.2009 11:17 |
задачи оптимизации | kirasir | Microsoft Office Excel | 2 | 08.08.2007 00:40 |