|
|
||||||
Visual Studio 2022 игнорирует модификатор register24.04.2022, 23:21. Показов 1339. Ответов 18
Метки нет (Все метки)
Всем привет. Прошу помощи у знающих. Читаю букварь по С++, и столкнулся с такой проблемой,
есть такой код: Кликните здесь для просмотра всего текста
Так вот, если собрать код в Visual Studio 2022, то разница в скорости выполнения кода для register/не register-цикла незначительна, а если собрать тот же код в Dev C++, то скорость выполнения как и положено, для register-цикла почти в два раза быстрее. И тут собственно вопрос, как уговорить Visual Studio 2022 использовать модификатор register?
0
|
||||||
| 24.04.2022, 23:21 | |
|
Ответы с готовыми решениями:
18
Visual Studio 2010 выборочно игнорирует изменения в коде
Расширение для Visual Studio 2022 на фреймворке Visual Studio Community Toolkit |
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
|
|
| 24.04.2022, 23:28 | |
|
А может дело вообще не в этом? Например разная оптимизация у компиляторов. Учитывая что у вас тут абсолютно пустой цикл, компилятор может его вообще удалить...
Да и вообще не мешало бы сравнить asm код, который генерируется обоими компиляторами...
0
|
|
|
Неэпический
|
||||||||
| 24.04.2022, 23:38 | ||||||||
|
А в последних стандартах и вовсе объявлен как неиспользуемый и зарезервированный на будущие нужны. Добавлено через 1 минуту
0
|
||||||||
|
Вездепух
12931 / 6799 / 1820
Регистрация: 18.10.2014
Сообщений: 17,210
|
||||||||||||
| 24.04.2022, 23:38 | ||||||||||||
|
Во-первых, в языке С++ уже давно нет никакого "модификатора register". Во-вторых, никакой разницы в скорости выполнении этих циклов нет ни в одном компиляторе . Время - ноль везде. Это циклы пусты, ничего не делают и полностью выбрасываются из кода компилятором. Dev-Cpp
0
|
||||||||||||
|
Неэпический
|
|||
| 24.04.2022, 23:44 | |||
|
Выше я привел код, который дает GCC. Он просто посчитал, что delay будет равен 50 и выкинул ваши циклы между вызовами clock. Что касается register, то компилятор сам разберется что и куда положить. И этот самый register на это вряд ли как-то повлияет. А если вдруг повлияет, то вы всё равно таким кодом не сможете корректно замерить разницу.
0
|
|||
|
Вездепух
12931 / 6799 / 1820
Регистрация: 18.10.2014
Сообщений: 17,210
|
|||
| 24.04.2022, 23:46 | |||
|
Добавлено через 1 минуту Как такое в голову могло прийти?
0
|
|||
| 24.04.2022, 23:48 | |
|
0
|
|
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
|
||
| 24.04.2022, 23:50 | ||
|
И вообще уже давно это устарело https://en.cppreference.com/w/... e_duration
1
|
||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|
| 24.04.2022, 23:54 | |
|
0
|
|
|
Вездепух
12931 / 6799 / 1820
Регистрация: 18.10.2014
Сообщений: 17,210
|
||
| 24.04.2022, 23:55 | ||
|
1. В языке С++ уже 5 лет как нет модификатора register. Он остался только в языке С.2. Ни один компилятор уже давно не принимает во внимание модификатора register, даже если разрешает его использование в коде. Решения о распределении регистров принимаются компилятором самостоятельно, с полным игнорированием ваших модификаторов. Все, что делает модификатор register - это запрещает применение унарного оператора & к переменной.3. Замеры скорости выполнения отладочной/неоптимизированной конфигурации кода, которыми вы тут занимались - бессмысленная чушь.
0
|
||
|
Вездепух
12931 / 6799 / 1820
Регистрация: 18.10.2014
Сообщений: 17,210
|
||
| 25.04.2022, 00:02 | ||
|
0
|
||
|
|
||
| 25.04.2022, 00:12 [ТС] | ||
|
Базовый курс С++ Герберт Шилдт
Ну там как бы и говориться что студия игнорирует ключевое слово register, отсюда и было принято решение использовать DevC++. Ну и естественно так как консоль показала разные результаты одного и того же кода, отсюда и возник данный вопрос! Добавлено через 6 минут
0
|
||
|
Вездепух
12931 / 6799 / 1820
Регистрация: 18.10.2014
Сообщений: 17,210
|
||
| 25.04.2022, 00:27 | ||
|
0
|
||
| 25.04.2022, 00:27 | |
|
Помогаю со студенческими работами здесь
19
Нужен элемент консольное приложение Visual Studio 2022 expied Ошибка в visual Studio 2022 Visual Studio 2022 на mac
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|