Java 9 - Unsafe removal
От: lpc Великобритания  
Дата: 17.10.15 21:03
Оценка: -2
Похоже в Оракл совсем из ума выжили.

http://blog.dripstat.com/removal-of-sun-misc-unsafe-a-disaster-in-the-making/

Кроме перечисленного по ссылке, джава 9 превратится в тыкву для low latency систем в финансах.
Re: Java 9 - Unsafe removal
От: · Великобритания  
Дата: 17.10.15 21:18
Оценка:
Здравствуйте, lpc, Вы писали:

lpc> Похоже в Оракл совсем из ума выжили.

lpc> http://blog.dripstat.com/removal-of-sun-misc-unsafe-a-disaster-in-the-making/
lpc> Кроме перечисленного по ссылке, джава 9 превратится в тыкву для low latency систем в финансах.
Ух.. А что там незаменимого осталось? С появлением nio, concurrent и прочего — unsafe вроде используется реже и реже.
avalon/1.0.432
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[2]: Java 9 - Unsafe removal
От: lpc Великобритания  
Дата: 17.10.15 23:00
Оценка:
Здравствуйте, ·, Вы писали:

·>Ух.. А что там незаменимого осталось? С появлением nio, concurrent и прочего — unsafe вроде используется реже и реже.


Вот видимо и в Оракл так думают, а в реальности — длинный список библиотек, без которых джава была бы (и вероятно теперь будет) ущербной.
Отредактировано 17.10.2015 23:01 lpc . Предыдущая версия .
Re[3]: Java 9 - Unsafe removal
От: · Великобритания  
Дата: 17.10.15 23:09
Оценка:
Здравствуйте, lpc, Вы писали:

lpc> ·>Ух.. А что там незаменимого осталось? С появлением nio, concurrent и прочего — unsafe вроде используется реже и реже.


lpc> Вот видимо и в Оракл так думают, а в реальности — длинный список библиотек, без которых джава была бы (и вероятно теперь будет) ущербной.

Если библиотеки не дохлые — обновят, дохлые — проще выкинуть.
Притом, как я понимаю, править можно было начать года два назад и ещё как минимум год времени на это.
warning компилятора о том, что нельзя использовать этот класс был с рождения.
avalon/1.0.432
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re: Java 9 - Unsafe removal
От: Joie de vivre  
Дата: 18.10.15 10:29
Оценка: +1
Здравствуйте, lpc, Вы писали:

lpc>Похоже в Оракл совсем из ума выжили.


lpc>http://blog.dripstat.com/removal-of-sun-misc-unsafe-a-disaster-in-the-making/


lpc>Кроме перечисленного по ссылке, джава 9 превратится в тыкву для low latency систем в финансах.


Все будет хорошо, ведь из приведенного списка больше всего пострадают библиотеки, которые использовали Unsafe для создания объектов без вызова конструкторов, а не те:
а) что выделяли память вне хипа через Unsafe, когда можно было взять DirectBuffer и никто бы не заметил (сюдя можно отнести Netty, которая находится во главе списка).
б) что обновляли поля объектов в thread safe manner, используя getFieldOffset и putXXXVolatile/Ordered.

Для а) уже давно есть nio с DirectByteBuffer-ами, которая уже упоминалась в этом треде, а б) заменят на VarHandles.
Re[4]: Java 9 - Unsafe removal
От: lpc Великобритания  
Дата: 18.10.15 14:25
Оценка:
Здравствуйте, ·, Вы писали:

·>Если библиотеки не дохлые — обновят, дохлые — проще выкинуть.

·>Притом, как я понимаю, править можно было начать года два назад и ещё как минимум год времени на это.

Вопрос в том, будет ли техническая возможность обновить.

·>warning компилятора о том, что нельзя использовать этот класс был с рождения.


То есть не надо было писать эти библиотеки, нада было ждать пока в оракл дойдет сделать public api?
Re[2]: Java 9 - Unsafe removal
От: lpc Великобритания  
Дата: 18.10.15 14:34
Оценка:
Здравствуйте, Joie de vivre, Вы писали:

JDV>Все будет хорошо, ведь из приведенного списка больше всего пострадают библиотеки, которые использовали Unsafe для создания объектов без вызова конструкторов, а не те:

JDV> а) что выделяли память вне хипа через Unsafe, когда можно было взять DirectBuffer и никто бы не заметил (сюдя можно отнести Netty, которая находится во главе списка).
JDV> б) что обновляли поля объектов в thread safe manner, используя getFieldOffset и putXXXVolatile/Ordered.

JDV>Для а) уже давно есть nio с DirectByteBuffer-ами, которая уже упоминалась в этом треде, а б) заменят на VarHandles.


К сожалению DirectByteBuffer не является полноценной заменой того что давал unsafe. Как минимум, оно делает boundary checks, которые многим нафиг не сдались и которые просаживают performance в критических местах. В этих случаях лучше быть unsafe чем переписывать все на С++ (jni тоже не всегда подходит из-за оверхеда).

Про VarHandles не знал, спасибо, есть значит маленькая надежда. Маленькая потому что судя по всему в Оракл не до конца понимают как и главное зачем люди используют Unsafe. В моей индустрии (low latency java) это то что позволяет таки писать на java, а не на С++.
Re: Java 9 - Unsafe removal
От: serb Россия  
Дата: 18.10.15 16:35
Оценка:
Здравствуйте, lpc, Вы писали:

lpc>Похоже в Оракл совсем из ума выжили.


lpc>http://blog.dripstat.com/removal-of-sun-misc-unsafe-a-disaster-in-the-making/


lpc>Кроме перечисленного по ссылке, джава 9 превратится в тыкву для low latency систем в финансах.


Если вам чего-то не хватает в открытом API то всегда можно зафайлить тикет(пока еще есть время):
http://bugreport.java.com/
или написать письмо с вопросом на
http://mail.openjdk.java.net/pipermail/core-libs-dev/

разработчикам библиотек можете посоветовать сделать тоже самое.
Re: Java 9 - Unsafe removal
От: vsb Казахстан  
Дата: 18.10.15 17:49
Оценка:
Я слышал, что в 9 совсем убирать не будут, через какой-то флаг можно будет достучаться, чтобы кому надо — пока могли пользовать. И будут вводить весь нужный функционал другими способами, чтобы люди мигрировали с Unsafe.
Re[5]: Java 9 - Unsafe removal
От: · Великобритания  
Дата: 18.10.15 20:11
Оценка: +1
Здравствуйте, lpc, Вы писали:

lpc> ·>Если библиотеки не дохлые — обновят, дохлые — проще выкинуть.

lpc> ·>Притом, как я понимаю, править можно было начать года два назад и ещё как минимум год времени на это.
lpc> Вопрос в том, будет ли техническая возможность обновить.
Для опен-сорс библиотек — конечно будет. Почему может быть нет?

lpc> ·>warning компилятора о том, что нельзя использовать этот класс был с рождения.

lpc> То есть не надо было писать эти библиотеки, нада было ждать пока в оракл дойдет сделать public api?
Нет, конечно, когда выбора нет — все средства хороши. Но вполне было очевидно, что когда-то это кончится, рано или поздно. Недокументированные приватные api меняются или ломаются.

В общем, не смертельно, как мне кажется.
avalon/1.0.432
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re: Java 9 - Unsafe removal
От: Blazkowicz Россия  
Дата: 19.10.15 08:55
Оценка: :)
Здравствуйте, lpc, Вы писали:

lpc>Кроме перечисленного по ссылке, джава 9 превратится в тыкву для low latency систем в финансах.

Да, пофигу
Re[3]: Java 9 - Unsafe removal
От: insighter ОАЭ  
Дата: 20.10.15 11:14
Оценка:
Здравствуйте, lpc, Вы писали:

lpc>Про VarHandles не знал, спасибо, есть значит маленькая надежда. Маленькая потому что судя по всему в Оракл не до конца понимают как и главное зачем люди используют Unsafe.


да все там прекрасно понимают, не понимают скорее разработчики некоторых популярных фреймворков кто на это закладывался, а раз так у них бомбануло то попутно не понимают еще и различие между private/public api.
java шараги -> enterprise галеры, банки -> highload microservices + bigdata/ml
Re: Java 9 - Unsafe removal
От: insighter ОАЭ  
Дата: 20.10.15 11:17
Оценка: 16 (3)
Здравствуйте, lpc, Вы писали:

lpc>Похоже в Оракл совсем из ума выжили.


все разжеванно, слушать до конца (либо вот на хабре текстом если удобней)

+"Unsafe" Discussion at JCrete
java шараги -> enterprise галеры, банки -> highload microservices + bigdata/ml
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.