|
0 / 0 / 1
Регистрация: 24.12.2015
Сообщений: 60
|
|
Про оптимизацию27.01.2016, 11:34. Показов 566. Ответов 6
Метки нет (Все метки)
Не брался за c++ лет 10. За это время произошло много интересного. Например кажется начали использовать математический сопроцессор (Если это так, то это очевидное решение надо было реализовать лет 20 назад).Компьютер нот (2Ггцx2Ггб) Создаю цикл 500(500{......}) В нем считаю синусы, минусы, косинусы, корни. Время выполнения 26 тиков(команда rdtsc). Предполагая, что меня обманывают пишу синусы в цикле в массив. Ага, время увеличилось до 200-300 тыс тиков, но такое же время занимает расчет минусов, откуда делаю вывод, что время идет на доступ к массиву. На компьютере послабее этого(1.5x512)только пустой цикл мотается 1-1,5 мс. а здесь 26 тиков. Это чего двойной разименнованный перегруженный указатель на функцию имплементированного класса получается? Можно писать внутри много всего и все будет 26 тиков, но предел есть и какой-то непонятный. Ступенька прироста времени получается если чего-то и где-то в цикле приписать, пока логику не понял. Вопросы: как это использовать и как с этим бороться?
0
|
|
| 27.01.2016, 11:34 | |
|
Ответы с готовыми решениями:
6
Вопрос про оптимизацию кода Нужен совет про оптимизацию Пара вопросов про оптимизацию в поисковиках |
|
Ушел с форума
|
||
| 27.01.2016, 11:58 | ||
|
И делать это только в Release (т.к. в конфигурации Debug оптимизации отключены и в код вставляется масса разнообразных проверок). Бывает, что компилятор предвычислит какое-то выражение еще на этапе компиляции и зашивает его результат в exe. Бывает, что какие-то части кода вообще выбрасываются, т.к. компилятор видит, что результат вычислений нигде не используется. Яркий пример - пустой цикл.
0
|
||
|
0 / 0 / 1
Регистрация: 24.12.2015
Сообщений: 60
|
|
| 27.01.2016, 14:26 [ТС] | |
|
Медленно ползу в сторону дебаггера. А пока ещё одно замечание. Предположим тот-же цикл. В нем часть выполняется 1 мс., приписываю ещё одну часть (независимую от первой), которая тоже выполняется ~1 мс. 1+1=2
))))))))))))))))))) На деле оказывается раз в 10 больше...Добавлено через 43 минуты И ещё замечание. Мелкие пропагандируют теперь использование циклов в таких местах где логично было бы использовать memcpy, например заполнение массива текстуры в directx. Логично предположить, что циклы теперь выполняются ничто, раньше попробуй побрезгать асмом........ Добавлено через 48 минут Пересмотрел все и пришел к выводу, что это опять леший водит. Умножение оказалось в 4 раза медленней вычитания, а в прошлый раз я где-то прогляделся, но дыма без огня нет и все мои наблюдения ещё под вопросом... И потом код на приведенных в пример компьютерах различается по времени в тиках раз в 10. Тут конечно причин может быть много. Но что-то есть. И ещё новые игрушки с приставкой HD, например Panzer HD (Я полагаю здесь HD=SVGA), а на старых компьютерах не тянет в хлам...
0
|
|
|
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
|
|||
| 27.01.2016, 14:38 | |||
|
Добавлено через 4 минуты
0
|
|||
|
0 / 0 / 1
Регистрация: 24.12.2015
Сообщений: 60
|
|
| 27.01.2016, 14:50 [ТС] | |
|
Я про то что наступило светлое будущее и время выполнения арифметических операций стало 0, но это оказалось лешием
)) Ничто не выведет из меня мечтателя. А современные видеокарты считают за 1/60 сек 250тыс полигонов, вот если-бы это на арифметические операции грамотно потратить.........
0
|
|
|
2 / 2 / 0
Регистрация: 12.04.2015
Сообщений: 24
|
||
| 28.01.2016, 13:13 | ||
|
Serg2016_1,
Я тоже не смог пройти мимо этой фразы. Кажется, последним компом, который использовал чел, был какой-то 80286, ибо только у них еще сохранялось разделение между ALU и FPU. Да и уже на 80286 этот самый FPU можно было использовать. Может, чел работал только с 8086? ![]() Serg2016_1, Не обижайтесь, мы по-доброму. Вам хочется потрындеть, вот и мы вас в этом всецело поддерживаем, как видите.
0
|
||
|
0 / 0 / 1
Регистрация: 24.12.2015
Сообщений: 60
|
|
| 28.01.2016, 13:24 [ТС] | |
|
Да нет, я и не обижаюсь (это не я
)))), нет повода. Просто сопроцессор никогда не работал как это хотелось-бы. Т.е. время математических операций 0. А тут....... Ну вообщем прогляделся походу,но всё же чего-то есть. Если я говорю, что у меня нет компьютера, подразумевая, что у меня 286 компьютер это же не значит, что у меня его нет...
0
|
|
| 28.01.2016, 13:24 | |
|
Помогаю со студенческими работами здесь
7
И снова про PopupMenu (было про длину, теперь про ширину) Задача на оптимизацию Задача на оптимизацию Задача на оптимизацию Зaдaча на оптимизацию Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|