Mentionsy Mentionsy
Podcast Stacja IT
Podcast Stacja IT

Stacja.IT Podcast 057 Mateusz Kamiński - Czy Java może być wydajna?

06.12.2024 ·1 godz 0 min · 12 rozdziałów

W nowym odcinku podcastu Stacji.IT rozmawiamy o języku Java, który jest jednym z najpopularniejszych języków programowania. Gościem odcinka jest Mateusz Kamiński - Head of Product Team & Technology Evangelist w Sages. Podczas naszej dyskusji poruszamy następujące tematy: Jakie zagadnienia najbardziej Cię interesują w IT? Dlaczego programujesz w Javie? Kiedy Java jest wydajna, a kiedy nie? W jaki sposób można optymalizować działanie aplikacji w Javie? Czy są do tego jakieś narzędzia, biblioteki, dobre praktyki? Czy kolejne wersje Javy są szybsze / bardziej efektywne? Jakie są najważniejsze zmiany w Javie od wersji 8 od strony programisty? Czy Java nadal szybko się zmienia? Kiedy warto skorzystać z innych języków programowania działających w ramach JVM? Jakie są najczęstsze błędy popełniane przez programistów JVM?   Zapraszamy do oglądania i subskrybowania naszego kanału, aby być na bieżąco z najnowszymi odcinkami!    ________________________________________________________ Posłuchaj rozmów z prowadzącymi na Stacji i dowiedz się, jakie są ciekawe trendy w IT, jaką ścieżkę rozwoju wybrać i jakimi tematami warto się zainteresować. Rozmawiamy o programowaniu, data science i budowaniu własnej kariery w IT. 😉 🌏 Więcej o nas przeczytasz na stronie: www.stacja.it

7:17 · Garbage Collector i kompilacja do kodu natywnego 1

Czy to są te główne elementy, czy o czymś tutaj jeszcze należałoby wspomnieć, jakby o tych głównych kategoriach, na które trzeba popatrzeć, żeby się zastanowić, czy moja aplikacja jest wydajna, czy nie. Tutaj możemy podzielić JVM-a na takie dwie sfery. Pierwsza dotyczy odśmiecania pamięci, a druga kompilacji do kodu natywnego przez JIT-a. Właśnie jak ja zaczynałem w ogóle pracować przy Javie, to niestety wiele źródeł mówiło o tym, że Java to jest interpretowany język, co ciekawe, a to jest absolutnie Nieprawda, ponieważ już od dawien dawna, tak naprawdę od wersji 1.1 wprowadzono JITA, czyli Just In Time Compiler.

19:23 · Wydajność w zastosowaniach i migracja na nowsze wersje Javy 1

Situacje, w których jakby z góry jesteśmy skazani na porażkę, tak? Czyli grupy zastosowań, czy właśnie sposób korzystania z języka, który tu przychodzi ci do głowy, który jakby należy po prostu unikać i korzystać z jakiejś innej technologii. To tak. Myślę, że głównie to wynika, jeżeli gdzieś nie możemy Javy zastosować, to właśnie z powodu takiego, że mamy te algorytmy odśmiecania pamięci, bo zwykle wtedy, powiedzmy, musimy taki system pewnie zaprojektować przy pomocy języków CC++, obecnie Rust powiedzmy gdzieś tam. Ja nie mam akurat doświadczenia wielkiego w tych językach, natomiast rozumiem z czego to wynika.

25:14 · Optymalizacja kodu i wydajność garbage collectora 1

To czy coś tutaj można powiedzieć, zaczynając od samego programowania, o takich dobrych praktykach, które powodują, że dzięki temu dobrze współpracujemy z tą maszyną wirtualną, z tym garbage collectorem. Wspomniałeś przez chwilę o tym, żeby funkcje przez nas tworzone były niezbyt długie, żeby ten Just-In-Time Compiler sobie z tym poradził. Czy tutaj możemy powiedzieć więcej, jak to wygląda? Krótkie to znaczy jak to mniej więcej należy rozumieć. To nie jest proste, ponieważ właśnie to co my widzimy jako krótkie w kodzie maszynowym może zajmować miliony linii kodu. Natomiast możemy oczywiście weryfikować, czy wirtualna maszyna Java, czy ten JIT potrafi skompilować nasz kod.

Pokazano wszystkie 3 dopasowania. Transkrypcja generowana automatycznie i niesprawdzana ręcznie — może zawierać błędy.