|
|
|||||||||||||||||||||
Теория оптимизации03.07.2014, 12:19. Показов 4060. Ответов 50
Метки нет (Все метки)
Доброго! В интернете натолкнулся на статью бывалого прогера, который говорит несколько простых правил оптимизации кода Си. Делал опыты по некоторым его советам в XE 3….и что то результаты тестов не совпадают с его высказыванием.
К примеру, речь о том, что цикл for, быстрее работает, если в нем статичные переменные. То есть этот код должен работать быстрее
Следующий вариант, это рекомендация использовать связку if else, чем if if то есть этот код работать должен быстрее
Добавлено через 8 минут опечатался в коде, второго примера, там "b=20000000;" заместо "2=10000000;"
0
|
|||||||||||||||||||||
| 03.07.2014, 12:19 | |
|
Ответы с готовыми решениями:
50
Метод оптимизации Вопрос оптимизации программы Интересный пример оптимизации |
|
327 / 230 / 55
Регистрация: 30.05.2014
Сообщений: 682
|
||
| 10.07.2014, 19:48 | ||
посмотрели, и математику перенесли на ms.
1
|
||
|
Ушел с форума
|
|||
| 11.07.2014, 07:40 | |||
|
компилятора нет доступа, тогда он будет обязан вставить вычисление Length() внутрь цикла, чтобы не было побочных эффектов (например, когда st неявным образом изменяется из этой внешней функции). В остальных случаях компилятор легко соптимизирует такой цикл. Над такими элементарными случаями лучше вообще не ломать голову, компилятор все равно сделает по-своему. Вообще, - и об этом пишут много где и постоянно, - нельзя доверять своим "чувствам" в отношении того, что и где будет быстрее, а что медленнее. Все нужно проверять ручками, в профилировщиках и других соответствующих программах. И только после того, как найдутся узкие места, производительность которых не устраивает, следует заниматься оптимизацией. В противном случае это тупое прожигание времени. И даже если кто-то пишет, что (a>b) будет быстрее (b<a), это все равно нужно проверить двадцать пять раз, прежде чем поверить. Я буквально вчера оптимизировал один спинлок, про который писали, что он работает заметно шустрее критической секции. По тестам оказалось ровно обратное.
4
|
|||
|
|
|
| 11.07.2014, 10:32 [ТС] | |
|
также есть утверждения что программа работает быстрее с переменными что об явлены внутри функции, чем глобально....так же сделал замеры, разницы не нашел..только если рассуждать логически...ведь глобальную переменную раз объявил и она весит в программе, а внутри функции каждый раз при выполнении создается, это же довес к "напрягу" программы ? Я не говорю что глобальная переменная это хорошо,все зависит от поставленной задачи. Просто собираю нюансы в свою "копилку".
0
|
|
|
1 / 1 / 1
Регистрация: 14.03.2014
Сообщений: 46
|
|
| 11.07.2014, 10:45 | |
|
Наглядней будет, если сделать это, а после еще и дизассемблировать код, чтобы посмотреть количество операций. Потому что, я предполагаю что разницы нет, обратишься ли ты к локальной переменной или глобальной (в плане производительности). И вот, предполагаю что, если замеры одинаковы, значит и число операций одинаковое в обоих случаях на выходе компилятора.
1
|
|
|
|
||||||||||||||||
| 14.07.2014, 15:22 [ТС] | ||||||||||||||||
|
Еще вот натолкнулся, что система быстрее отрабатывает такой код на порядок быстрее
Чем если сравнивать просто
ошибся в последней строчке кода,там так должно быть
0
|
||||||||||||||||
|
Ушел с форума
|
|||||||
| 21.07.2014, 23:58 | |||||||
|
Я просто оставлю это здесь:
1
|
|||||||
|
|
|||||||
| 22.07.2014, 00:00 | |||||||
|
Не по теме: Убежденный, Тут о UnicodeString речь, хотя смысл тот же.
1
|
|||||||
|
|
|
| 22.07.2014, 00:50 [ТС] | |
|
0
|
|
| 22.07.2014, 00:50 | |
|
Научиться искусству оптимизации кода Отключение оптимизации и векторизации компилятора?
Дайте совет по реорганизации и оптимизации исходника Теория оптимизации запроса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|