Stacja.IT Podcast 057 Mateusz Kamiński - Czy Java może być wydajna?
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
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.
Natomiast o ten aspekt kompilacji do kodu natywnego to wystarczy, że zadbamy o to, że nasz kod będzie dobrze napisany. Po prostu będziemy dbali o czystość kodu. Bo im mniejsze są te metody w klasach, im klasy mają mniej metod, czyli tak jakby to jest dobrze zorganizowane, tym ten JIT ma łatwiej to zoptymalizować. Więc to jest taki ciekawy aspekt, bo tutaj też powiem, że spotykałem się z takimi, nie wiem, sugestiami, że po co tam na to jakoś bardzo zwracać uwagę, w sensie komputer, procesor wszystko przyjmie i wykona. No nie do końca tak jak widać jest. Ponieważ nawet sam styl kodu ma znaczenie dla jakości potem i wydajności działania.
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.
Natomiast jeżeli coś ciągle musi być wykonywane, to ostatecznie dojdzie do tego ostatniego poziomu. No i teraz... Ta kompilacja dzieje się na dodatkowych wątkach. W ogóle, jak my startujemy proces w Javie, to funkcja main to jest tylko jeden z wielu wątków, które startują razem z wirtualną maszyną Javy, bo mamy tam oczywiście wątki dotyczące odśmiecania pamięci, ale też właśnie te, które dotyczą JITA. No i właśnie to wygląda tak, że jak jakaś metoda się skompiluje, to natrafia do takiego cache'a na ten kod natywny i dostęp do tego cache'a jest zapewniony bardzo dobrze, ponieważ siedzi wszystko w pamięci RAM, ale jest to dosyć nieduży obszar, który można poszerzyć, jeżeli nasza aplikacja właśnie jest takim ciężkim monolitem,
Pokazano wszystkie 4 dopasowania. Transkrypcja generowana automatycznie i niesprawdzana ręcznie — może zawierać błędy.
Podstawowe informacje o rozmówcach i tematyka rozmowy.
Mateusz opisuje swoje doświadczenie z Javą i jej rozwój w ostatnich latach.
Rozmowa na temat zmian w wirtualnej maszynie Java (JVM) i ich wpływ na wydajność.
Szczegóły dotyczące garbage collectorów i kompilacji do kodu natywnego w JVM.
Mateusz opisuje wprowadzone w Java 8 funkcje funkcyjne i ich wpływ na wydajność.
Rozmowa na temat nowych funkcji w JDK i zmian w paradygramaty programowania w Java.
Mateusz omawia zastosowania, w których Java może być niewydajna, oraz migrację na nowsze wersje Javy.
Podsumowanie i perspektywy rozwoju języka Java.
Rozmowa skupia się na optymalizacji kodu w Javie, profilowaniu i wyborze odpowiedniego garbage collectora w zależności od specyfiki aplikacji.
Rozmowa o różnych opcjach optymalizacji JVM, takich jak CRAC, GraalVM, oraz alternatywne wersje Javy, takie jak Torneido VM.
Porównanie Clojure, Groovy i Kotlin, w tym ich zalety i wady, z podkreśleniem stabilności i wydajności Java.
Podsumowanie rozmowy i zaproszenie do kolejnej rozmowy na temat nowych funkcji Javy.
Rozdziały i streszczenia generowane automatycznie. Pełna transkrypcja nie jest publikowana — wyszukaj frazę, aby zobaczyć dopasowane fragmenty.
Kliknij, aby znaleźć fragmenty, w których pada.
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