Size: a a a

ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))

2019 December 18

λ

λoλdog in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
Ну возможно да
источник

λ

λoλdog in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
Но мысль понятна
источник

AK

Andrey Korzinev in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
VarHandle.readLong внезапно быстрее даже Unsafe.readLong
источник

AK

Andrey Korzinev in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
пушто компилятор этот вызов заменяет сразу на байткод, который нужен для проверки границ, смещений и прямое чтение
источник

λ

λoλdog in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
а че эти проверки не в неитиве?
источник

ᛒᚨᚱᛏᛟᛋᛋᛟ in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
источник

AK

Andrey Korzinev in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
λoλdog
а че эти проверки не в неитиве?
потому что javac тебе компилирует байткод, который переносим между платформами?
источник

λ

λoλdog in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
кек, ну никто не мешает тебе эти проверики и в нейтиве сделать
источник

λ

λoλdog in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
тот код тож знает на какой он платформе скомпилирован
источник

AK

Andrey Korzinev in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
λoλdog
тот код тож знает на какой он платформе скомпилирован
а какая разница где он скомпилирован? Это же Java :)
источник

λ

λoλdog in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
ну в общем я понял
источник

AK

Andrey Korzinev in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
Ты можешь скомпилировать приложение на ARM и запустить его на x86_64 и наоборот
источник

AK

Andrey Korzinev in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
JIT затем и нужен же, чтобы такие вещи потом уже в машинные коды перегонять
источник

λ

λoλdog in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
Я про другое, ты проверки границ можешь и в неитиве делать
источник

λ

λoλdog in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
у тебя под арм и x86 уже конкретные jvm
источник

AK

Andrey Korzinev in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
Но чем точнее ты выразишь свою мысль в программе, тем меньше вероятность что JIT в ней запутается и забьет на оптимизацию
источник

λ

λoλdog in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
я думаю они там в неитиве и проверяются
источник

λ

λoλdog in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
а в байткоде ниче нет
источник

λ

λoλdog in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
но мне лень проверять)
источник

AK

Andrey Korzinev in ПОКА ОДЕРСКИ НЕ ВИДИТ (наш M.D. (потому что его нет. нельзя увидеть то, чего нет.))
λoλdog
Я про другое, ты проверки границ можешь и в неитиве делать
А, если ты про это - то да. Я же говорю про то, что VarHandle.* превращается в байткод, который уже максимально оптимизированно будет вызываться JVM
источник