🦥Alex Fails
VAX, вроде б
Vitaliy
И каждый раз рандомный сигнал небось?
🦥Alex Fails
Нет
Aidar
Атомик просто так что ли придумали
Vitaliy
Ну это если вы оборачивать в них все будете в многопоточной среде
Vitaliy
Вообще всё
Aidar
Более того там volatile гарантирует только то что инструкция тут будет и не будет перемещена, а про кеш процессора, мемори ордер же вроде ни слова
Vitaliy
В Java?
Aidar
В c++
Vitaliy
В Java она только кэш процессора отключает
Vitaliy
По стандарту
Aidar
Нельзя его отключить его можно инвалидить
Aidar
Это барьеры
Vitaliy
Оно пишет, что отключает. Не пишет, как и через что, а в процессорах настолько я не разбираюсь
Vitaliy
Знаю, что это не JVM делает, а сам процессор
Aidar
Оно не отключает оно обеспечивает консистентность
Aidar
Это JVM делает
mefest
разве процессор может без кеша?
Vitaliy
Потоковый кэш, если что
Aidar
Я про процессорный
Vitaliy
Это JVM делает
Вроде бы нет. Я вообще думал до этого разговора, что JVM просто выполняет код с плюсовым volatile
Aidar
Sheridan
я смотрю срач вокруг жабы расползается по всему телеграму....
Vitaliy
И ограничения на кэши переменных в потоках идут именно от самого проца, а нп жвм
Vitaliy
Компилирует и выполяет
Vitaliy
Точнее, не так.
Aidar
Выполняет процессор
Vitaliy
Жвм интерпретирует код, скомпилированный своим компилером
Aidar
Нет JVM докомпилирует
Anonymous
Хм
Aidar
JIT/AOT
Vitaliy
Vitaliy
Андроидовская жвм даже простейшие методы инлайнить не умеет
Aidar
Эмм
Aidar
ART полностью AOT же
Vitaliy
И JIT не всегда есть
Vitaliy
Так AOT не JVM занимается
Vitaliy
JVM с его результатами работает
Sheridan
Vitaliy
Да, так и есть
Aidar
Berkus
отличная телега про volatile vs. atomic - сразу видно кто ни в зуб ногой
Aidar
Aot/jit не указан
Berkus
Berkus
так вот, про атомики гуглите memory barrier/fence - это, при даже прочих равных, ключевое отличие от volatile
🦥Alex Fails
mefest
бывают...
они сразу с озу работают или что это?
Berkus
Berkus
сразу с озу, да
Berkus
у транспьютера вся локальная память это озу... или кэш.. нет разницы )
Berkus
> "At one point in the standardization effort, Microsoft proposed adding these semantics to volatile, and I think some of their C++ compilers do." This is correct — with VC++ 2003 and onward, volatile implies a full memory barrier.
майкрософт как всегда лидируют в special olympics
Berkus
просто у мс жуткий NIH баттхерт и нежелание следовать стандартам, даже если они сами заседают в isocpp
Stanislav
у жабы больше чем одна реализация компилера
Stanislav
нет, это другое) gnu java compiler
Stanislav
Berkus
art и dalvik это тоже реализации jvm
mefest
Berkus
не обязательно
Berkus
пока стандарт пропихивают кланг может их реализовать более корректно
Berkus
/shrug
Berkus
Stanislav
Stanislav
и да, в 2015 модули можно уже юзать
Berkus
пусть дерутся, главное чтобы выиграли годные модули
Stanislav
у мс они получше
Berkus
ну так и флаг им в руки
Stanislav
ждем TS на модули в этом году
Vitaliy
Aot/jit не указан
Ты забыл про электронный уровень(схема процессора) и атомный(электроны и p-n переходы :)
Aidar
Sergey
🦥Alex Fails
🦥Alex Fails
@procxxlib
Это канал книжек. Туда бот будет постить ваши книги
Sergey
а он у меня пустой. это нормально?
Sergey
и что значит "ваши книги"? надо как-то по-хитрому закидывать их?
🦥Alex Fails
🦥Alex Fails
🦥Alex Fails
Спс