Bare Metal Java - Jarek Pałka | #72 Talk4Devs

preview_player
Показать описание

--

🎤 Prelekcja

Java, a tak naprawdę JVM, cieszy się zasłużoną sławą platformy nieprzyjaznej dla sprzętu, a co za tym idzie, nikt poważny (oprócz Apache Kafka, Elastic, Cassandra i Neo4j) nie będzie budował baz danych, kolejek i innych rozwiązań, gdzie „mechanical sympathy” jest kluczowe.

Garbage collector, spekulujący JIT, brak kontroli nad „object layout”, fatalne wsparcie (głównie przez brak abstrakcji) dla funkcji nowoczesnych procesorów i systemów operacyjnych. I do tego jeszcze JNI (kto tam był, to wie, o czym mówię). O implementacji IO nawet przez szacunek do samych siebie, nie wspominam.

Celem tej prezentacji jest odczarowanie tych mitów i pokazanie jak wiele wysiłku ostatnio idzie ostatnio w uczynienie JVM bardziej przyjaznego dla sprzętu.

Jest o API, które są jeszcze w fazie inkubacji (choć niektóre jeszcze nie dojrzały do tego, a niektóre są już stabilne). API których, być może, nigdy w życiu nie zobaczycie, a które będą w przyszłości stanowić fundament baz danych czy kolejek.

Zaczynamy od Unsafe, by nadać rys historyczny. By potem pokazać foreign memory access, czyli jak bezpiecznie pracować z pamięcią poza stertą, oraz foreign functions interface, czyli jak wywołać C z Java (i w drugą stronę).

Wszystko polane sosem niedziałających przykładów, przekłamanych micro benchmarków i OpenJDK skompilowanego na pięć minut przed prezentacją.

--

🗣️ Prelegent

--

👨‍💻 Talk4Devs

Talk4Devs to wydarzenie, które corocznie elektryzuje i aktywizuje branżę IT. Dla jednych jest to festiwal inspirującej wiedzy, dla innych znakomita możliwość networkingu, dla wszystkich obowiązkowy przystanek na szkoleniowej mapie.

--

💻 j-labs software specialists

Jesteśmy firmą stworzoną przez inżynierów dla inżynierów! 

Specjalizujemy się w outsourcingu zespołów i specjalistów IT. Nasi j-People wyróżniają się ponad 9-letnim stażem pracy w swoich specjalizacjach. Tworzymy firmę, w której doświadczeni inżynierowie realizują projekty, które świadomie wybrali.

Robimy dobre IT, albo wcale!

Śledź nas na:

--

🎬 Rozdziały

00:00 Wstęp
05:00 Agenda
06:53 The rise and fall on managed runtime
10:12 Managed runtime
18:20 Welcome, bare metal Java
19:47 DirectByteBuffer
21:40 JNI
21:54 JEP
22:30 Goals
24:27 Concepts
25:03 MemorySegment
31:42 Memory Layout
34:18 C struct
37:38 Hello c
Рекомендации по теме
Комментарии
Автор

Dzięki Jarek, dzięki J-labs. Widziałem ta prezentacje już kilka razy w różnych wydaniach, ale zawsze uczy :)

kretynek