-
- не нужно ничего выдумывать. Логика стандарта проста. Если объект никому не доступен, его можно удалять для оптимизации, т.к. это никак не повлияет на поведение системы. volatile действует только на данные, которые могут быть кому-то потенциально sladkoejka(65 знак., 05.07.2018 18:56)
- Это ты просто рафинированный программист, который тупо смотрит на код, и делает какие-то свои выводы, исходя из абстрактной вычислительной системы в вакууме. В реальной жизни у микропроцессора есть всякие там шины памяти, кеши, ПДП и пр. вещи, =AlexD=(486 знак., 06.07.2018 08:23 - 08:48)
- Строго говоря, компилятор действует в рамках абстрактной вычислительной машины. Для него важно чтобы наблюдаемое поведение соответствовало указанному в программе. Эффективность кэширования его не волнует. Конечно при условии, что это не повлияет sladkoejka(67 знак., 06.07.2018 16:04)
- бред, ты вообще не понял что тебе говорят. Если компилер будет выкидывать volatile, то половина тестов железа просто перестанут работать. Этого никто не допустит ни в теории, ни на практике. - =AlexD=(06.07.2018 16:37 - 16:40)
- тест, у которого результат не зависит от того что он делает никому нафик не нужен. Такой тест можно смело удалять. А если результат есть и зависит от удаления переменной, то такая переменная оптимизации не подлежит. - sladkoejka(06.07.2018 18:37 - 18:39)
- Пффффррр, мля, ну ты даёшь. Да почти все тесты измеряют ВРЕМЯ, и им вообще не нужен никакой результат :-))) , либо результат с точки зрения ЯЗЫКА бессмысленен, например проверка памяти через запись-чтение. - =AlexD=(16.07.2018 10:28)
- тест, у которого результат не зависит от того что он делает никому нафик не нужен. Такой тест можно смело удалять. А если результат есть и зависит от удаления переменной, то такая переменная оптимизации не подлежит. - sladkoejka(06.07.2018 18:37 - 18:39)
- бред, ты вообще не понял что тебе говорят. Если компилер будет выкидывать volatile, то половина тестов железа просто перестанут работать. Этого никто не допустит ни в теории, ни на практике. - =AlexD=(06.07.2018 16:37 - 16:40)
- Строго говоря, компилятор действует в рамках абстрактной вычислительной машины. Для него важно чтобы наблюдаемое поведение соответствовало указанному в программе. Эффективность кэширования его не волнует. Конечно при условии, что это не повлияет sladkoejka(67 знак., 06.07.2018 16:04)
- А чё спорить-то, сделайте иначе бомж(178 знак., 05.07.2018 22:49)
- Ну да, конечно, восьмой gcc: fk0(64 знак., 06.07.2018 09:03)
- :-))) - SciFi(06.07.2018 09:59)
- гениально :) - sladkoejka(06.07.2018 03:08)
- Ну да, конечно, восьмой gcc: fk0(64 знак., 06.07.2018 09:03)
- Интересное вышло обсуждение. Ранее не задумывался, но мне близка позиция Сладкоежки. Эффект от исполнения кода наступает лишь в двух случаях: Nikolay_Po(1136 знак., 05.07.2018 22:11)
- Не надо ничего выдумывать. Читайте текст стандарта. Компиляторостроители читают именно его. - SciFi(05.07.2018 22:13)
- логика стандарта совсем иная - если переменная имеет квалификатор volatile, то действия с этой переменной не подлежат оптимизации и должны быть представлены кодом как есть. Ни каких слов про доступнай, область видимости и жизни в стандарте нет - 0men(05.07.2018 19:00)
- Это ты просто рафинированный программист, который тупо смотрит на код, и делает какие-то свои выводы, исходя из абстрактной вычислительной системы в вакууме. В реальной жизни у микропроцессора есть всякие там шины памяти, кеши, ПДП и пр. вещи, =AlexD=(486 знак., 06.07.2018 08:23 - 08:48)
- не нужно ничего выдумывать. Логика стандарта проста. Если объект никому не доступен, его можно удалять для оптимизации, т.к. это никак не повлияет на поведение системы. volatile действует только на данные, которые могут быть кому-то потенциально sladkoejka(65 знак., 05.07.2018 18:56)