2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2
 
 Re: Загадка компилятора MS VS 2017
Сообщение19.09.2019, 18:25 
Аватара пользователя
Да уж. В режиме release все работает как надо и с if.
Такой дебагер.
Хотя релизовская версия для дебагинга - это мертвому припарки.
Большинство переменных не видно.

 
 
 
 Re: Загадка компилятора MS VS 2017
Сообщение19.09.2019, 18:46 
Вы могли самостоятельно включить оптимизацию в настройках Debug.
Пишите по одному оператору на строчку.

 
 
 
 Re: Загадка компилятора MS VS 2017
Сообщение19.09.2019, 18:53 
vend, а почему у вас размер массивов 64, а не 80?

 
 
 
 Re: Загадка компилятора MS VS 2017
Сообщение19.09.2019, 19:22 
Да не, 64 как раз хватает, тютелька в тютельку, после выхода из всех циклов cnt=64: https://rextester.com/WOL76104 - и всё работает, что характерно.
Но так делать неправильно конечно!

 
 
 
 Re: Загадка компилятора MS VS 2017
Сообщение20.09.2019, 01:10 
Аватара пользователя
Я недавно узнал о замечательной штуке Matt GodboltCompiler Explorer.

И вот обсуждаемый пример: https://godbolt.org/z/K46xPp

Как видим, компилятор gcc 8.2 на уровне -O3 оптимизирует цикл полностью.

Попробовать другой код и другие компиляторы и опции - you are welcome!

 
 
 
 Re: Загадка компилятора MS VS 2017
Сообщение20.09.2019, 14:50 
MGM, Вам нужно просто настроить (как уже сказали выше) компилятор нужным вам образом. Это уберет необходимость лезть без надобности в конфигурацию release и позволит лучше разобраться в механике работы компилятора.
Делается это просто - необходимые флаги скармливаются ему либо в командной строке, либо через настройки компилятора.
Вот например по флагам оптимизации -
https://docs.microsoft.com/ru-ru/visual ... ew=vs-2017
Когда я пишу под Ubuntu, используя $g++$ в качестве компилятора, я скармливаю компилятору под 10 флагов каждый раз, смотря какой результат мне необходим. Проверяю, соответствует ли код такому то стандарту, включаю дополнительные предупреждения и все в таком духе. Поэтому практика эта нормальная, один раз разберётесь и больше удвиляться не будете.

 
 
 
 Re: Загадка компилятора MS VS 2017
Сообщение29.09.2019, 18:34 
Аватара пользователя
vend в сообщении #1416033 писал(а):
Повторяю свой предыдущий вопрос. Как ведет себя отладчик совсем не интересует.

memcpy в случае если есть условие на инркементацию индекса?
В первый раз слышу.
Кстати, я уже написал, что код работает правильно в режиме release.
А для отладки мне нет необходимости условие ставить перед основной скобкой.
xy заполняется правильно, это перевод координат дискретного круга в одномерный массив.

Хотя если честно, именно к этой задаче я охладел.
Все равно всем спасибо за интересную дискуссию.

 
 
 [ Сообщений: 22 ]  На страницу Пред.  1, 2


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group