|
2 / 1 / 1
Регистрация: 20.09.2018
Сообщений: 17
|
|||||||||||
Есть ли разница в оптимизации между определением переменной до цикла28.09.2018, 10:27. Показов 3171. Ответов 48
Метки нет (Все метки)
Подскажите, есть ли разница в производительности между
0
|
|||||||||||
| 28.09.2018, 10:27 | |
|
Ответы с готовыми решениями:
48
Разница между определением переменной до и непосредственно в самой инструкции for Разница между вариантами цикла |
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 28.09.2018, 14:14 | |
|
При volatile компилятор по идее обязан генерировать код который будет читать значения этой переменной из памяти.
Соответственно он не может полагаться на count заданный изначально и по этой причине не может оптимизировать цикл.
0
|
|
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|||
| 28.09.2018, 14:18 | |||
|
Добавлено через 58 секунд Нужно же пройтись count раз по коду что бы выдать верный результат для sum Добавлено через 1 минуту Kastaneda, Кажется я понял почему ты так думаешь. Потому что после подсчета sum никак не используется в моем примере. Я просто забыл его сюда добавить.
0
|
|||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||
| 28.09.2018, 14:42 | |||
|
их нужно протереть тряпочкой.
0
|
|||
|
|
|||
| 28.09.2018, 14:51 | |||
|
Добавлено через 1 минуту
0
|
|||
|
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,097
|
||||
| 28.09.2018, 14:51 | ||||
|
Исключение - особо сильная оптимизация, где совершенно точно известен процессор и компилятор и гарантируется что они потом не поменяются, но это настолько редкость.
0
|
||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|||||||
| 28.09.2018, 15:36 | |||||||
|
То, что где то результаты не отличаются это лишь оптимизации компилятора и таких гарантий у нас нет.
Добавлено через 1 минуту Спасибо MrGluck за faster
0
|
|||||||
|
|
||||||||||||
| 28.09.2018, 15:41 | ||||||||||||
|
variableCreatedInLoop
0
|
||||||||||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||
| 28.09.2018, 15:58 | ||
|
Не знаю откуда у тебя этот листинг но он походу не полный... поэтому комментировать мне сложно Так как разница в тестах существенна позволю себе дать ссылку на rextester. http://rextester.com/UIWW60175
0
|
||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
| 28.09.2018, 16:19 | |
|
ИМХО, ТС спрашивал про про различия при оптимизации кода при ОДИНАКОВОМ поведении кода, но определении переменной в разных местах. при наличии
volatile эти функции ведут себя ПРИНЦИПИАЛЬНО ПО-РАЗНОМУ. Как можно сравнивать их оптимизацию?
0
|
|
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 28.09.2018, 16:21 | |
|
Kastaneda,
Во втором листинге вроде да. Но как тогда идёт подсчёт? Судя по всему твой компилятор забил на volatile и сразу посчитал данные. А теперь попробуй создать ситуацию где данные заранее неизвестны ![]() И как ты объяснишь существенную разницу по ссылке выше? ![]() Добавлено через 1 минуту avgoor, Согласен. Я сейчас рассматриваю ситуацию в общем а не конкретный пример ТС.
0
|
|
|
|
||||||||||
| 28.09.2018, 16:25 | ||||||||||
0
|
||||||||||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
| 28.09.2018, 16:29 | |
|
Undisputed, В общем случае при одинаковом наблюдаемом поведении - оптимизаторам пофиг, где и что вы определили, они сейчас достаточно умные. А то, про что говорите вы вообще не относится к оптимизации. Эти функции считают разные вещи. В таком случае определять переменную надо не "как быстрее" а "что нам надо посчитать".
0
|
|
|
Вездепух
13235 / 6867 / 1827
Регистрация: 18.10.2014
Сообщений: 17,407
|
|
| 28.09.2018, 16:40 | |
|
Как правильно было замечено в самом начале, для типов с тривиальной конструкцией и деструкцией, никакой разницы нет и быть не может (кроме разве что обусловленной глюками компилятора). Зачем и что тут мерить - не ясно.
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 28.09.2018, 16:47 | |
|
0
|
|
|
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,097
|
|
| 28.09.2018, 17:13 | |
|
0
|
|
|
Вездепух
13235 / 6867 / 1827
Регистрация: 18.10.2014
Сообщений: 17,407
|
|
| 28.09.2018, 17:21 | |
|
0
|
|
| 28.09.2018, 17:21 | |
|
Разница между префиксной и постфиксной формой записи счетчика цикла
Есть ли разница между / и \\ Разница между @property и объявлением переменной в классе хедера Разница между this.*=*; и просто изменением переменной в методе объекта Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|
|
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки.
Добавлены следующие реквизиты типа Булево:
- Буквы;
- Цифры;
- Символы.
Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
|
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей.
Самым главным критерием для. . .
|
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store.
И так:
1. Скачиваем с. . .
|
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге).
Задача:
Программно добавить префикс в нумерацию документов.
Решение:
В модуле объекта. . .
|