2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: Загадка компилятора MS VS 2017
Сообщение19.09.2019, 18:25 
Аватара пользователя


05/06/08
478
Да уж. В режиме release все работает как надо и с if.
Такой дебагер.
Хотя релизовская версия для дебагинга - это мертвому припарки.
Большинство переменных не видно.

 Профиль  
                  
 
 Re: Загадка компилятора MS VS 2017
Сообщение19.09.2019, 18:46 


27/08/16
10450
Вы могли самостоятельно включить оптимизацию в настройках Debug.
Пишите по одному оператору на строчку.

 Профиль  
                  
 
 Re: Загадка компилятора MS VS 2017
Сообщение19.09.2019, 18:53 
Заслуженный участник


04/05/09
4589
vend, а почему у вас размер массивов 64, а не 80?

 Профиль  
                  
 
 Re: Загадка компилятора MS VS 2017
Сообщение19.09.2019, 19:22 
Заслуженный участник


20/08/14
11867
Россия, Москва
Да не, 64 как раз хватает, тютелька в тютельку, после выхода из всех циклов cnt=64: https://rextester.com/WOL76104 - и всё работает, что характерно.
Но так делать неправильно конечно!

 Профиль  
                  
 
 Re: Загадка компилятора MS VS 2017
Сообщение20.09.2019, 01:10 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Я недавно узнал о замечательной штуке Matt GodboltCompiler Explorer.

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

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

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

 Профиль  
                  
 
 Re: Загадка компилятора MS VS 2017
Сообщение20.09.2019, 14:50 


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

 Профиль  
                  
 
 Re: Загадка компилятора MS VS 2017
Сообщение29.09.2019, 18:34 
Аватара пользователя


05/06/08
478
vend в сообщении #1416033 писал(а):
Повторяю свой предыдущий вопрос. Как ведет себя отладчик совсем не интересует.

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

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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу Пред.  1, 2

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group