{"id":17958,"date":"2024-04-04T11:56:02","date_gmt":"2024-04-04T09:56:02","guid":{"rendered":"https:\/\/vived.io\/?p=17958"},"modified":"2024-04-05T14:28:34","modified_gmt":"2024-04-05T12:28:34","slug":"czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170\/","title":{"rendered":"Czy istnieje najbardziej &#8222;zielona&#8221; JVM? Spoiler: jak zwykle to zale\u017cy &#8211; JVM Weekly vol. 170"},"content":{"rendered":"\n<h2 id=\"1-jak-latwo-uzywac-visual-studio-code-z-java-prosto-z-jdconf-2024\" data-num=1>1. Jak \u0142atwo u\u017cywa\u0107 Visual Studio Code z Jav\u0105, prosto z JDConf 2024<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"585\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-4-1024x585.png\" alt=\"\" class=\"wp-image-17968\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-4-1024x585.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-4-300x171.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-4-768x439.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-4-1536x878.png 1536w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-4.png 1792w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Zacznijmy z frontu konferencyjnego. W zesz\u0142ym tygodniu mieli\u015bmy bowiem du\u017c\u0105, stricte Javow\u0105 konferencje online od Microsoftu. JDConf 2024, bo tak si\u0119 nazywa\u0142a, <a href=\"https:\/\/jdconf.com\">mia\u0142a cztery r\u00f3\u017cne \u015bcie\u017cki<\/a> (dla trzech r\u00f3\u017cnych stref czasowych), w kt\u00f3rych to Microsoftowi uda\u0142o upchn\u0105\u0107 bardzo dobre grono spiker\u00f3w, kt\u00f3re pokry\u0142o w zasadzie wszystkie tematy, kt\u00f3rymi \u017cyje spo\u0142eczno\u015b\u0107 Javowa w 2024.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"embed-responsive embed-responsive-16by9\"><iframe loading=\"lazy\" title=\"Microsoft JDConf 2024 (Europe, Middle East &amp; Africa)\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/8Fxx2nb1F2w?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/div><figcaption class=\"wp-element-caption\">Tutaj macie \u015bcie\u017ck\u0119 Europejsk\u0105 dla zainteresowanych, reszt\u0119 znajdziecie pod linkiem.<\/figcaption><\/figure>\n\n\n\n<p>By\u0142y wi\u0119c nowo\u015bci w Springu, Wirtualne W\u0105tki, CRaC, AI\/LLMy (w tym Microsoftowy Semantic Kernel, kt\u00f3rego osobi\u015bcie u\u017cywam i w zasadzie to polecam mimo \u017ce dalej to de facto testowa wersja projektu), chmura, a nawet projekt Valhalla. Sam dopiero przebijam si\u0119 przez poszczeg\u00f3lne prezentowane tematy (w ko\u0144cu to \u0142\u0105cznie ponad p\u00f3\u0142 doby materia\u0142u), ale jest jedno z wyst\u0105pie\u0144, kt\u00f3rym ju\u017c teraz chcia\u0142em si\u0119 z Wami podzieli\u0107.<\/p>\n\n\n\n<p>W swojej sesji <a href=\"https:\/\/www.youtube.com\/watch?v=i2mS5RKnS7g&amp;t=7380s\">From Zero to Java Hero: Visual Studio Code Mastery<\/a> Loiane Gorner podzieli\u0142a si\u0119 bowiem do\u015bwiadczeniami z u\u017cywania Visual Studio Code do tworzenia javowego kodu. Z pewnego punktu widzenia by\u0142a to najbardziej praktyczna ze wszystkich wyst\u0105pie\u0144, bo o ile cz\u0119sto nie mamy kontroli nad u\u017cywanym przez nas statkiem technologicznym (kompromisy, wsz\u0119dzie kompromisy), o tyle u\u017cywane przez nas IDE \/ Edytor (zwykle) pozostaje pewn\u0105 oaz\u0105 wolno\u015bci i przejawem pewnego indywidualizmu. A \u017ce sam Visual Studio Code bardzo lubi\u0119, a bardzo rzadko po\u015bwi\u0119cam mu miejsce w tych przegl\u0105dach &#8211; gdzie zwykle jednak ust\u0119puje miejsca IntelliJ Idea &#8211; to dzisiaj stwierdzi\u0142em, \u017ce warto da\u0107 mu troch\u0119 mi\u0142o\u015bci i &#8222;czasu antenowego&#8221;.<\/p>\n\n\n\n<p>Dodatkowo, urzek\u0142a mnie pewna &#8222;multimedialno\u015b\u0107&#8221; publikacji Loiane, kt\u00f3ra to poza talkiem w ostatnich tygodniach opublikowa\u0142a  <a href=\"https:\/\/loiane.com\/2024\/03\/visual-studio-code-for-java-the-complete-guide\/\">Visual Studio Code for Java: The Complete Guide (Tips, Setup, and Extensions)<\/a> opowiadaj\u0105cy, jak w 2024 roku pracowa\u0107 z VSCode w projektach javowych. Artyku\u0142 g\u0142adko wprowadza w niezb\u0119dne kroki, ustawienia i dodatki do VSCode, autorka zaleca rozpocz\u0119cie od Coding Pack for Java, kt\u00f3ry \u0142\u0105czy w sobie VSCode, JDK i niezb\u0119dne rozszerzenia, co upraszcza pocz\u0105tkowy proces konfiguracji. Przewodnik opisuje poszczeg\u00f3lne funkcje, od tych zupe\u0142nie podstawowych po zaawansowane, w tym zarz\u0105dzanie wersjami JDK czy narz\u0119dzi testowania i debugowania oraz korzystanie z rozszerze\u0144 do zarz\u0105dzania projektem, analizy kodu czy bezpiecze\u0144stwa aplikacji. Na samej Javie si\u0119 zreszt\u0105 tutaj nie ko\u0144czy &#8211; Loiane opisuje te\u017c przyk\u0142adow\u0105 konfiguracj\u0119 dla Springa, obs\u0142ug\u0119 mikrouserwis\u00f3w czy integracj\u0119 z Dockerem.<\/p>\n\n\n\n<p>A \u017ceby zako\u0144czy\u0107 temat Visual Studio Code, to w lutym ukaza\u0142a si\u0119 <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=Oracle.oracle-java\">spora aktualizacja dla oficjalnego rozszerzenia dla Javy od Oracle<\/a>. Obejmuje ona wsparcie nowych funkcji z \u015bwie\u017co opublikowanego JDK 22, a tak\u017ce wprowadzenie opcji w menu kontekstowym umo\u017cliwiaj\u0105cej uruchamianie dowolnego projektu oraz dodane wsparcie dla u\u017cywania r\u00f3\u017cnych JDK w ka\u017cdym obszarze roboczym, odchodz\u0105c od przestarza\u0142ej ju\u017c konfiguracji <code>jdk.userdir<\/code>. Ulepszenia obejmuj\u0105 tak\u017ce w\u0142\u0105czenie test\u00f3w TestNG do eksploratora test\u00f3w, funkcj\u0119 &#8222;Id\u017a do testu&#8221;, oraz now\u0105 konfiguracj\u0119 dla argument\u00f3w VM zdefiniowanych przez u\u017cytkownika do uruchamiania serwera j\u0119zyka Java.<\/p>\n\n\n\n<h2 id=\"2-czy-ktoras-z-jvm-jest-najbardziej-zielona\" data-num=2>2. Czy kt\u00f3ra\u015b z JVM jest najbardziej &#8222;zielona&#8221;?<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"585\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-1-1024x585.png\" alt=\"\" class=\"wp-image-17961\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-1-1024x585.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-1-300x171.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-1-768x439.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-1-1536x878.png 1536w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-1.png 1792w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Wszelkiej ma\u015bci redukcja emisji i ochrona \u015brodowiska to kwestie, kt\u00f3re ostatnimi laty s\u0105 coraz bardziej dyskutowane. Osobi\u015bcie bardzo je lubi\u0119, bo to jeden z ciekawszych biznesowych (pomijaj\u0105c oczywiste cost-optimization) temat\u00f3w, kt\u00f3re argumentuj\u0105 pisanie wydajniejszych, lepiej skaluj\u0105cych si\u0119 aplikacji. Nagle mo\u017ce si\u0119 okaza\u0107, \u017ce bran\u017cowa zasada &#8222;czas programist\u00f3w jest cenniejszy ni\u017c czas serwer\u00f3w&#8221; mo\u017ce przesta\u0107 obowi\u0105zywa\u0107, je\u015bli we\u017amiemy pod uwag\u0119 te\u017c koszty \u015brodowiskowe. Z drugiej strony, nie wolno si\u0119 da\u0107 zwariowa\u0107 i do tematu podchodzi\u0107 z g\u0142ow\u0105, si\u0119gaj\u0105c najpierw po najni\u017cej wisz\u0105ce owoce, a nie robi\u0107 klasyczn\u0105 &#8222;premature optimization&#8221; &#8211; bo w oryginalnym cytacie mniej wi\u0119cje chodzi\u0142o o to, \u017ceby najpierw optymaliizowa\u0107 algorytm, a nie robi\u0107 czarn\u0105 magi\u0119 na rejestrach procesora, ale ca\u0142kiem mo\u017cliwe \u017ce te\u017c poszukiwanie &#8222;odpowiedniej&#8221; implementacji maszyny wirtualnej. Czy pomi\u0119dzy poszczeg\u00f3lnymi wariantami JVM istnieje jaka\u015b r\u00f3\u017cnica pod k\u0105tem zu\u017cycia energii? Na szcz\u0119\u015bcie kto\u015b to sprawdzi\u0142 i por\u00f3wna\u0142 za nas po in\u017cyniersku.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"550\" height=\"171\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-2.png\" alt=\"\" class=\"wp-image-17963\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-2.png 550w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-2-300x93.png 300w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><figcaption class=\"wp-element-caption\">\u017beby nie wpa\u015b\u0107 w pu\u0142apk\u0119 krzykliwych nag\u0142\u00f3wk\u00f3w. PS: &#8222;Real ones&#8221; te\u017c istniej\u0105.<\/figcaption><\/figure><\/div>\n\n\n<p>Ionuta Balosin, kt\u00f3rego mo\u017cecie kojarzy\u0107 z eksperyment\u00f3w nad wydajno\u015bci\u0105 JVM, tym razem postanowi\u0142 p\u00f3j\u015b\u0107 za ciosem i w publikacji <a href=\"https:\/\/ionutbalosin.com\/2024\/03\/analyzing-jvm-energy-consumption-for-jdk-21-an-empirical-study\/\">Analyzing JVM Energy Consumption for JDK 21: An Empirical Study<\/a> dok\u0142adnie zbada\u0107 wzorce zu\u017cycia energii w r\u00f3\u017cnych JVM. W tym celu skorzysta\u0142 z linii polece\u0144, takich jak <code>powerstat<\/code> i <code>powermetrics<\/code>, oraz fizycznych urz\u0105dze\u0144 pomiarowych (takich jak mierniki mocy pod\u0142\u0105czane do gniazdka), aby zebra\u0107 jak najbardziej realne dane o zu\u017cyciu energii. Te narz\u0119dzia pozwalaj\u0105 oceni\u0107 wydajno\u015bci JVM na r\u00f3\u017cnych architekturach, gdy\u017c <code>powerstat<\/code> oferuje wgl\u0105d w zu\u017cycie mocy za po\u015brednictwem interfejsu Intel&#8217;s Running Average Power Limit (RAPL) na systemach GNU\/Linux, a <code>powermetrics<\/code> pe\u0142ni podobn\u0105 funkcj\u0119 na macOS dla architektur ARM64. RAPL jest szczeg\u00f3lnie istotny ze wzgl\u0119du na szczeg\u00f3\u0142owe raportowanie zu\u017cycia energii w r\u00f3\u017cnych komponentach, takich jak CPU i DRAM, w granularny spos\u00f3b, chocia\u017c nawet on nie obejmuje wszystkich komponent\u00f3w systemu, takich jak interfejsy sieciowe czy urz\u0105dzenia do przechowywania danych.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"500\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-3.png\" alt=\"\" class=\"wp-image-17965\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-3.png 500w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-3-300x300.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-3-150x150.png 150w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><figcaption class=\"wp-element-caption\">Co ciekawe, tekst ani przez sekund\u0119 nie wspomina o Windowsie.<\/figcaption><\/figure><\/div>\n\n\n<p>W swoich eksperymentach Balosin przeprowadzi\u0142 testy na szeregu aplikacji, od znanych demo-projekt\u00f3w, takich jak Spring PetClinic i Quarkus Hibernate ORM Panache, po niestandardowe aplikacji, kt\u00f3re pozwoli\u0142y na zbadania konkretnych wzorc\u00f3w kodowania i ich wp\u0142ywu na zu\u017cycie energii, takie jak poszczeg\u00f3lne metody dost\u0119pu do pami\u0119ci, praktyki logowania, mechanizmy obs\u0142ugi wyj\u0105tk\u00f3w, metody \u0142\u0105czenia ci\u0105g\u00f3w znak\u00f3w oraz algorytmy sortowania o r\u00f3\u017cnej z\u0142o\u017cono\u015bci. Ka\u017cda JVM by\u0142a testowana w kontrolowanych warunkach, aby zapewni\u0107 sprawiedliwe por\u00f3wnanie, z uwzgl\u0119dnieniem minimalizacji zewn\u0119trznych zmiennych, kt\u00f3re mog\u0142yby zniekszta\u0142ci\u0107 pomiary, jak zapewnienie odpowiedniego obci\u0105\u017cenia JVM.<\/p>\n\n\n\n<p>Wyniki bada\u0144 nie s\u0105 rewolucyjne, ale jednak zawieraj\u0105 par\u0119 ciekawych obserwacji. Na przyk\u0142ad, Oracle GraalVM Native Image, zw\u0142aszcza gdy jest zoptymalizowany za PGO (Profile-Guided Optimization), wykaza\u0142 korzystny balans mi\u0119dzy efektywno\u015bci\u0105 energetyczn\u0105 a wydajno\u015bci\u0105, podkre\u015blaj\u0105c potencjalne korzy\u015bci z Ahead-of-Time Compilation w celu zmniejszenia zu\u017cycia energii w czasie dzia\u0142ania. Jednak\u017ce oczywi\u015bcie ka\u017cdy kij ma dwa ko\u0144ce &#8211; wi\u0105za\u0142o si\u0119 to z konieczno\u015bci\u0105 wy\u017cszego zu\u017cycia energii na procesu budowania, a \u017ce r\u00f3\u017cnica nie by\u0142a jaka\u015b wyj\u0105tkowo widoczna, to osi\u0105gni\u0119cie maksymalnej efektywno\u015bci energetycznej wymaga odpowiedniej&#8230; priorytetyzacji. Ponadto, badanie uwidoczni\u0142o z\u0142o\u017cono\u015b\u0107 relacji mi\u0119dzy zu\u017cyciem energii a wydajno\u015bci\u0105 w r\u00f3\u017cnych JVM i typach aplikacji, ze wzgl\u0119du na ogromn\u0105 ilo\u015b\u0107 element\u00f3w ruchomych. To sprawia, \u017ce trudno jest wyci\u0105gn\u0105\u0107 szerokie wnioski na temat efektywno\u015bci energetycznej, poniewa\u017c najbardziej efektywna energetycznie JVM w jednym scenariuszu mo\u017ce nie utrzyma\u0107 tego tytu\u0142u w r\u00f3\u017cnych warunkach lub z r\u00f3\u017cnymi typami aplikacji. Wnioski s\u0105 wi\u0119c&#8230; no w\u0142a\u015bnie nie ma ich za wiele, ale sam eksperyment jest mega ciekawy i osobi\u015bcie uwielbiam niezwyk\u0142\u0105 wnikliwo\u015b\u0107 Ionuta.<\/p>\n\n\n\n<p>A je\u015bli temat Wam si\u0119 spodoba\u0142, to przyznam, \u017ce (jak na pocz\u0105tku wspomnia\u0142em) sam w tym roku wpad\u0142em w kr\u00f3licz\u0105 nor\u0119 wszelkiej ma\u015bci temat\u00f3w zwi\u0105zanych sustainability. Dlatego mam dla Was kilka lektur dodatkowych, kt\u00f3re sam uwa\u017cam za szczeg\u00f3lnie ciekawe, ale te\u017c uwidaczniaj\u0105ce, jak z\u0142o\u017conym jest poruszany przez nie problem.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/greenlab.di.uminho.pt\/wp-content\/uploads\/2017\/09\/paperSLE.pdf\">Energy Efficiency across Programming Languages<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/arxiv.org\/abs\/2211.02001\">Estimating the Carbon Footprint of BLOOM, a 176B Parameter Language Model<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/sustainability.google\/progress\/energy\/\">Google: Operating on 24\/7 Carbon-Free Energy by 2030<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/arxiv.org\/abs\/2204.05149\">The Carbon Footprint of Machine Learning Training Will Plateau, Then Shrink<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/stateof.greensoftware.foundation\/\">2023 State of Green Software<\/a> od Green Software Foundation<\/li>\n\n\n\n<li><a href=\"https:\/\/w3c.github.io\/sustyweb\/\">Web Sustainability Guidelines (WSG) 1.0<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/greensoftware.foundation\/articles\/software-carbon-intensity-sci-specification-project\">Software Carbon Intensity (SCI) Specification Project<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.sciencedirect.com\/science\/article\/pii\/S2666389922001878\">The real climate and transformative impact of ICT: A critique of estimates, trends, and regulations<\/a><\/li>\n<\/ul>\n\n\n\n<p>Polecam, je\u015bli chcecie lepiej poczu\u0107 klimat tematu. Wystarczaj\u0105co paper\u00f3w, aby\u015bmy byli w stanie zrobi\u0107 sobie takie nasze ma\u0142e &#8222;Papers We Love&#8221;. Jest to te\u017c efekt mojego researchu, kt\u00f3ry potrzebowa\u0142em na potrzeby nowego talka <a href=\"https:\/\/www.slideshare.net\/slideshow\/the-state-of-the-green-it-at-the-beginning-of-2024\/267106323\">The State of the Green IT at the beginning of 2024<\/a> (spoiler &#8211; w maju b\u0119d\u0119 mia\u0142 okazje go prezentowa\u0107 na JUG Copenhagen, b\u0119d\u0119 pewnie dawa\u0142 zna\u0107). Ca\u0142o\u015b\u0107 cz\u0119\u015bciowo pokrywa si\u0119 te\u017c z tekstem <a href=\"https:\/\/virtuslab.com\/blog\/business-insights\/what-is-green-it\/\">What is Green IT &#8211; Strategies and trends lined out<\/a>, kt\u00f3ry mia\u0142em kiedy\u015b okazj\u0119 skrobn\u0105\u0107.<\/p>\n\n\n\n<p>Ostatni\u0105 rzecz\u0105, kt\u00f3r\u0105 chcia\u0142em poleci\u0107 tym, kt\u00f3rzy chcieliby sprawdzi\u0107 efektywno\u015b\u0107 energetyczn\u0105 swoich aplikacji jest za\u015b <a href=\"https:\/\/github.com\/joular\/joularjx\">JoularX<\/a>, czyli Agent Javowy s\u0142u\u017c\u0105cy w\u0142a\u015bnie do pomiar\u00f3w energii, \u0142\u0105cznie z rozbiciem na poszczeg\u00f3lne metody. Sam u\u017cywa\u0142em go w projektach dla klient\u00f3w chc\u0105cych spe\u0142ni\u0107 wymogi wchodz\u0105cej w tym roku w \u017cycie regulacji CSRD (cho\u0107 przyznam \u017ce g\u0142\u00f3wnie na specjalne \u017cyczenie, wbrew temu co si\u0119 o niej s\u0105dzi Unia Europejskiej raczej nie b\u0119dzie Wam benchmarkowa\u0107 kodu) i jest wygodny w u\u017cyciu, cho\u0107 analiza samych danych wymaga nieco samozaparcia.<\/p>\n\n\n\n<p>PS: Je\u017celi macie tego typu wyzwania i chcieliby\u015bcie pogada\u0107 jak do tego mo\u017cna podej\u015b\u0107, to ja bardzo <a href=\"https:\/\/calendly.com\/askowronski\/15min\">ch\u0119tnie wbije si\u0119 na kawk\u0119<\/a>. To jest naprawd\u0119 interesuj\u0105cy temat.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/IMG_2052-1024x768.jpeg\" alt=\"\" class=\"wp-image-17972\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/IMG_2052-1024x768.jpeg 1024w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/IMG_2052-300x225.jpeg 300w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/IMG_2052-768x576.jpeg 768w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/IMG_2052-1536x1152.jpeg 1536w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/IMG_2052-2048x1536.jpeg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">PS2: A na koniec klasycznie polecam ksi\u0105\u017ck\u0119 &#8222;Not the End of the World&#8221;, kt\u00f3ra pomo\u017ce Wam nie zwariowa\u0107 w zalewie wspomnianych wy\u017cej nag\u0142\u00f3wk\u00f3w. Najg\u0142o\u015bniejsza ostatnio pozycja w temacie, bardzo fajnie zniuansowana je\u015bli chodzi o dob\u00f3r statystyk.<\/figcaption><\/figure>\n\n\n\n<h2 id=\"3-crac-szczegolowy-poradnik-od-aws-oraz-wsparcie-w-alpaquita-linux\" data-num=3>3. CRaC: Szczeg\u00f3\u0142owy poradnik od AWS oraz wsparcie w Alpaquita Linux<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"585\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-1024x585.png\" alt=\"\" class=\"wp-image-17959\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-1024x585.png 1024w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-300x171.png 300w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-768x439.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-1536x878.png 1536w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image.png 1792w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Ostatnim, troch\u0119 zaleg\u0142ym tekstem, kt\u00f3ry jednak bardzo dobrze wpisuje si\u0119 w m\u00f3j zakres zainteresowa\u0144 jest marcowy tekst od AWSa, w kt\u00f3rym to dostawca chmurowy opisuje, w jaki spos\u00f3b u\u017cywa\u0107 CRaC-a, aby zapewni\u0107 bardziej &#8222;natywne chmurowo&#8221; u\u017cytkownie Javowych aplikacji. Czym jest CRaC wspomina\u0142em wielokrotnie (dla nowych os\u00f3b polecam jedn\u0105 z poprzednich edycji), ale sumarycznie m\u00f3wimy tutaj o nak\u0142adce na Linuxowy mechanizm CRIU (Checkpoint\/Restore In Userspace), kt\u00f3ry pozwala zrzuci\u0107 ca\u0142y proces na dysk twardy, by nast\u0119pnie by\u0107 w stanie wystartowa\u0107 go z tak zapisanego checkpointu. W publikacji <a href=\"https:\/\/aws.amazon.com\/blogs\/containers\/using-crac-to-reduce-java-startup-times-on-amazon-eks\/\">Using CRaC to reduce Java startup times on Amazon EKS<\/a> AWS prezentuje szczeg\u00f3\u0142ow\u0105 instrukcje, w jaki spos\u00f3b przej\u015b\u0107 ca\u0142y proces, i to na wszystkich warstwach &#8211; samej chmury (w tym np. IAM i container registry), poprzez Kubernetesa, Dockera, ko\u0144cz\u0105c na integracji mechanizmu w aplikacji. To chyba pierwszy tak przekrojowy tutorial na kt\u00f3ry trafi\u0142em, i co pewnie nieco przera\u017ca to fakt, jak du\u017co jednak kolejnych krok\u00f3w i element\u00f3w ruchomych jest niezb\u0119dne, aby m\u00f3c uzyska\u0107 oczekiwane zyski. Efekt zdecydowanie jest tego warty &#8211; zej\u015bcie z 12 sekund do poni\u017cej sekundy to jest zdecydowanie co\u015b, co w wielu przypadkach (ekh ekh &#8211; autosklowanie) motywuje do grzebania.<\/p>\n\n\n\n<p>Nieco zabawnym jest za\u015b, \u017ce w artykule przewija si\u0119 nie w\u0142asna dystrybucja JDK od Amazonu, czyli Corretto, ale Zulu od Azula. Przypomina to tylko o fakcie, \u017ce jednak CRaC nie jest oficjaln\u0105 cz\u0119\u015bci\u0105 OpenJDK, a jedynie opcjonalnym dodatkiem. Dlatego tak naprawd\u0119 wspiera go w tej chwili zaledwie w\u0142a\u015bnie Zulu oraz Liberica od BellSoftu.<\/p>\n\n\n\n<p>Co ciekawe, to w\u0142a\u015bnie ta ostatnia firma postanowi\u0142a upro\u015bci\u0107 \u017cycie wszystkim potencjalnym u\u017cytkownikom CRaCa. Jak ju\u017c wspomina\u0142em, instrukcja od Amazonu jest d\u0142uga i skomplikowana, dlatego in\u017cynierowie z BellSoftu postanowili ca\u0142y proces nam nieco upro\u015bci\u0107. Firma, poza w\u0142asnym wariantem JDK, tworzy bowiem r\u00f3wnie\u017c w\u0142asn\u0105, opart\u0105 na Alpine dystrybucje Linuxa o nazwie Alpaquita, specjalnie sprofilowan\u0105 pod u\u017cycie z Jav\u0105. Ta dost\u0119pna jest r\u00f3wnie\u017c w formie <a href=\"https:\/\/hub.docker.com\/r\/bellsoft\/liberica-runtime-container\">gotowych kontener\u00f3w<\/a>, w tym od teraz takich <a href=\"https:\/\/bell-sw.com\/blog\/bellsoft-releases-alpaquita-containers-with-coordinated-restore-at-checkpoint-support\/\">z prekonfigurowanym CRaC-iem<\/a>. Oczywi\u015bcie, upraszcza to tylko cz\u0119\u015b\u0107 z wyzwa\u0144, przed kt\u00f3rymi stawia nas lektura tekstu AWS-a, ale wydaje si\u0119, \u017ce warto spr\u00f3bowa\u0107 Liberici, je\u015bli szukacie \u0142atwego wej\u015bcia w \u015bwiat CRaCu.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"338\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-5.png\" alt=\"\" class=\"wp-image-17976\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-5.png 500w, https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-5-300x203.png 300w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><figcaption class=\"wp-element-caption\">Ten \u017cart nigdy nie przestanie mnie \u015bmieszy\u0107.<\/figcaption><\/figure><\/div>","protected":false},"excerpt":{"rendered":"<p>Dzisiaj nie mamy za wiele news\u00f3w, a raczej d\u0142u\u017csze publikacje opisuj\u0105ce poszczeg\u00f3lne tematy nieco g\u0142\u0119biej. Mam nadzieje, \u017ce b\u0119dzie to mi\u0142a odmiana od nawa\u0142u releas\u00f3w.<\/p>\n","protected":false},"author":10,"featured_media":17981,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[259,1],"tags":[],"class_list":["post-17958","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-jvm-pl","category-no-category"],"acf":{"estimated_reading_time":"10","feature_image_blog":false,"weekly_summary":true,"push_notification_image":"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/Group-780.png","feature_image_visible":false},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Czy istnieje najbardziej &quot;zielona&quot; JVM? Spoiler: jak zwykle to zale\u017cy - JVM Weekly vol. 170 - Vived<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vived.io\/pl\/czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Czy istnieje najbardziej &quot;zielona&quot; JVM? Spoiler: jak zwykle to zale\u017cy - JVM Weekly vol. 170 - Vived\" \/>\n<meta property=\"og:description\" content=\"Dzisiaj nie mamy za wiele news\u00f3w, a raczej d\u0142u\u017csze publikacje opisuj\u0105ce poszczeg\u00f3lne tematy nieco g\u0142\u0119biej. Mam nadzieje, \u017ce b\u0119dzie to mi\u0142a odmiana od nawa\u0142u releas\u00f3w.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2024-04-04T09:56:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-05T12:28:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/Group-780-1024x560.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"560\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Artur Skowro\u0144ski\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/vived.io\/pl\/czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170\/\"},\"author\":{\"name\":\"Artur Skowro\u0144ski\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\"},\"headline\":\"Czy istnieje najbardziej &#8222;zielona&#8221; JVM? Spoiler: jak zwykle to zale\u017cy &#8211; JVM Weekly vol. 170\",\"datePublished\":\"2024-04-04T09:56:02+00:00\",\"dateModified\":\"2024-04-05T12:28:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170\/\"},\"wordCount\":2073,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/Group-780.png\",\"articleSection\":[\"JVM\",\"No category\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170\/\",\"url\":\"https:\/\/vived.io\/pl\/czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170\/\",\"name\":\"Czy istnieje najbardziej \\\"zielona\\\" JVM? Spoiler: jak zwykle to zale\u017cy - JVM Weekly vol. 170 - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/Group-780.png\",\"datePublished\":\"2024-04-04T09:56:02+00:00\",\"dateModified\":\"2024-04-05T12:28:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/Group-780.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/Group-780.png\",\"width\":1976,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Czy istnieje najbardziej &#8222;zielona&#8221; JVM? Spoiler: jak zwykle to zale\u017cy &#8211; JVM Weekly vol. 170\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/vived.io\/pl\/#website\",\"url\":\"https:\/\/vived.io\/pl\/\",\"name\":\"Vived\",\"description\":\"platform empowering IT people and technology companies to synergic growth\",\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/vived.io\/pl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/vived.io\/pl\/#organization\",\"name\":\"Vived\",\"url\":\"https:\/\/vived.io\/pl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png\",\"width\":136,\"height\":45,\"caption\":\"Vived\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\",\"name\":\"Artur Skowro\u0144ski\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g\",\"caption\":\"Artur Skowro\u0144ski\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Czy istnieje najbardziej \"zielona\" JVM? Spoiler: jak zwykle to zale\u017cy - JVM Weekly vol. 170 - Vived","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vived.io\/pl\/czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170\/","og_locale":"pl_PL","og_type":"article","og_title":"Czy istnieje najbardziej \"zielona\" JVM? Spoiler: jak zwykle to zale\u017cy - JVM Weekly vol. 170 - Vived","og_description":"Dzisiaj nie mamy za wiele news\u00f3w, a raczej d\u0142u\u017csze publikacje opisuj\u0105ce poszczeg\u00f3lne tematy nieco g\u0142\u0119biej. Mam nadzieje, \u017ce b\u0119dzie to mi\u0142a odmiana od nawa\u0142u releas\u00f3w.","og_url":"https:\/\/vived.io\/pl\/czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170\/","og_site_name":"Vived","article_published_time":"2024-04-04T09:56:02+00:00","article_modified_time":"2024-04-05T12:28:34+00:00","og_image":[{"width":1024,"height":560,"url":"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/Group-780-1024x560.png","type":"image\/png"}],"author":"Artur Skowro\u0144ski","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vived.io\/pl\/czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170\/"},"author":{"name":"Artur Skowro\u0144ski","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3"},"headline":"Czy istnieje najbardziej &#8222;zielona&#8221; JVM? Spoiler: jak zwykle to zale\u017cy &#8211; JVM Weekly vol. 170","datePublished":"2024-04-04T09:56:02+00:00","dateModified":"2024-04-05T12:28:34+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170\/"},"wordCount":2073,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/Group-780.png","articleSection":["JVM","No category"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170\/","url":"https:\/\/vived.io\/pl\/czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170\/","name":"Czy istnieje najbardziej \"zielona\" JVM? Spoiler: jak zwykle to zale\u017cy - JVM Weekly vol. 170 - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/Group-780.png","datePublished":"2024-04-04T09:56:02+00:00","dateModified":"2024-04-05T12:28:34+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/Group-780.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/Group-780.png","width":1976,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/czy-istnieje-najbardziej-zielona-jvm-spoiler-jak-zwykle-to-zalezy-jvm-weekly-vol-170\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"Czy istnieje najbardziej &#8222;zielona&#8221; JVM? Spoiler: jak zwykle to zale\u017cy &#8211; JVM Weekly vol. 170"}]},{"@type":"WebSite","@id":"https:\/\/vived.io\/pl\/#website","url":"https:\/\/vived.io\/pl\/","name":"Vived","description":"platform empowering IT people and technology companies to synergic growth","publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vived.io\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/vived.io\/pl\/#organization","name":"Vived","url":"https:\/\/vived.io\/pl\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/","url":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","width":136,"height":45,"caption":"Vived"},"image":{"@id":"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3","name":"Artur Skowro\u0144ski","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g","caption":"Artur Skowro\u0144ski"}}]}},"blocks_vived":[{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2 class=\"wp-block-heading\">1. Jak \u0142atwo u\u017cywa\u0107 Visual Studio Code z Jav\u0105, prosto z JDConf 2024<\/h2>\n","innerContent":["\n<h2 class=\"wp-block-heading\">1. Jak \u0142atwo u\u017cywa\u0107 Visual Studio Code z Jav\u0105, prosto z JDConf 2024<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"id":17968,"sizeSlug":"large","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-4-1024x585.png\" alt=\"\" class=\"wp-image-17968\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-4-1024x585.png\" alt=\"\" class=\"wp-image-17968\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Zacznijmy z frontu konferencyjnego. W zesz\u0142ym tygodniu mieli\u015bmy bowiem du\u017c\u0105, stricte Javow\u0105 konferencje online od Microsoftu. JDConf 2024, bo tak si\u0119 nazywa\u0142a, <a href=\"https:\/\/jdconf.com\">mia\u0142a cztery r\u00f3\u017cne \u015bcie\u017cki<\/a> (dla trzech r\u00f3\u017cnych stref czasowych), w kt\u00f3rych to Microsoftowi uda\u0142o upchn\u0105\u0107 bardzo dobre grono spiker\u00f3w, kt\u00f3re pokry\u0142o w zasadzie wszystkie tematy, kt\u00f3rymi \u017cyje spo\u0142eczno\u015b\u0107 Javowa w 2024.<\/p>\n","innerContent":["\n<p>Zacznijmy z frontu konferencyjnego. W zesz\u0142ym tygodniu mieli\u015bmy bowiem du\u017c\u0105, stricte Javow\u0105 konferencje online od Microsoftu. JDConf 2024, bo tak si\u0119 nazywa\u0142a, <a href=\"https:\/\/jdconf.com\">mia\u0142a cztery r\u00f3\u017cne \u015bcie\u017cki<\/a> (dla trzech r\u00f3\u017cnych stref czasowych), w kt\u00f3rych to Microsoftowi uda\u0142o upchn\u0105\u0107 bardzo dobre grono spiker\u00f3w, kt\u00f3re pokry\u0142o w zasadzie wszystkie tematy, kt\u00f3rymi \u017cyje spo\u0142eczno\u015b\u0107 Javowa w 2024.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/embed","attrs":{"url":"https:\/\/www.youtube.com\/watch?v=8Fxx2nb1F2w","type":"video","providerNameSlug":"youtube","responsive":true,"className":"wp-embed-aspect-16-9 wp-has-aspect-ratio"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/www.youtube.com\/watch?v=8Fxx2nb1F2w\n<\/div><figcaption class=\"wp-element-caption\">Tutaj macie \u015bcie\u017ck\u0119 Europejsk\u0105 dla zainteresowanych, reszt\u0119 znajdziecie pod linkiem.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/www.youtube.com\/watch?v=8Fxx2nb1F2w\n<\/div><figcaption class=\"wp-element-caption\">Tutaj macie \u015bcie\u017ck\u0119 Europejsk\u0105 dla zainteresowanych, reszt\u0119 znajdziecie pod linkiem.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>By\u0142y wi\u0119c nowo\u015bci w Springu, Wirtualne W\u0105tki, CRaC, AI\/LLMy (w tym Microsoftowy Semantic Kernel, kt\u00f3rego osobi\u015bcie u\u017cywam i w zasadzie to polecam mimo \u017ce dalej to de facto testowa wersja projektu), chmura, a nawet projekt Valhalla. Sam dopiero przebijam si\u0119 przez poszczeg\u00f3lne prezentowane tematy (w ko\u0144cu to \u0142\u0105cznie ponad p\u00f3\u0142 doby materia\u0142u), ale jest jedno z wyst\u0105pie\u0144, kt\u00f3rym ju\u017c teraz chcia\u0142em si\u0119 z Wami podzieli\u0107.<\/p>\n","innerContent":["\n<p>By\u0142y wi\u0119c nowo\u015bci w Springu, Wirtualne W\u0105tki, CRaC, AI\/LLMy (w tym Microsoftowy Semantic Kernel, kt\u00f3rego osobi\u015bcie u\u017cywam i w zasadzie to polecam mimo \u017ce dalej to de facto testowa wersja projektu), chmura, a nawet projekt Valhalla. Sam dopiero przebijam si\u0119 przez poszczeg\u00f3lne prezentowane tematy (w ko\u0144cu to \u0142\u0105cznie ponad p\u00f3\u0142 doby materia\u0142u), ale jest jedno z wyst\u0105pie\u0144, kt\u00f3rym ju\u017c teraz chcia\u0142em si\u0119 z Wami podzieli\u0107.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>W swojej sesji <a href=\"https:\/\/www.youtube.com\/watch?v=i2mS5RKnS7g&amp;t=7380s\">From Zero to Java Hero: Visual Studio Code Mastery<\/a> Loiane Gorner podzieli\u0142a si\u0119 bowiem do\u015bwiadczeniami z u\u017cywania Visual Studio Code do tworzenia javowego kodu. Z pewnego punktu widzenia by\u0142a to najbardziej praktyczna ze wszystkich wyst\u0105pie\u0144, bo o ile cz\u0119sto nie mamy kontroli nad u\u017cywanym przez nas statkiem technologicznym (kompromisy, wsz\u0119dzie kompromisy), o tyle u\u017cywane przez nas IDE \/ Edytor (zwykle) pozostaje pewn\u0105 oaz\u0105 wolno\u015bci i przejawem pewnego indywidualizmu. A \u017ce sam Visual Studio Code bardzo lubi\u0119, a bardzo rzadko po\u015bwi\u0119cam mu miejsce w tych przegl\u0105dach - gdzie zwykle jednak ust\u0119puje miejsca IntelliJ Idea - to dzisiaj stwierdzi\u0142em, \u017ce warto da\u0107 mu troch\u0119 mi\u0142o\u015bci i \"czasu antenowego\".<\/p>\n","innerContent":["\n<p>W swojej sesji <a href=\"https:\/\/www.youtube.com\/watch?v=i2mS5RKnS7g&amp;t=7380s\">From Zero to Java Hero: Visual Studio Code Mastery<\/a> Loiane Gorner podzieli\u0142a si\u0119 bowiem do\u015bwiadczeniami z u\u017cywania Visual Studio Code do tworzenia javowego kodu. Z pewnego punktu widzenia by\u0142a to najbardziej praktyczna ze wszystkich wyst\u0105pie\u0144, bo o ile cz\u0119sto nie mamy kontroli nad u\u017cywanym przez nas statkiem technologicznym (kompromisy, wsz\u0119dzie kompromisy), o tyle u\u017cywane przez nas IDE \/ Edytor (zwykle) pozostaje pewn\u0105 oaz\u0105 wolno\u015bci i przejawem pewnego indywidualizmu. A \u017ce sam Visual Studio Code bardzo lubi\u0119, a bardzo rzadko po\u015bwi\u0119cam mu miejsce w tych przegl\u0105dach - gdzie zwykle jednak ust\u0119puje miejsca IntelliJ Idea - to dzisiaj stwierdzi\u0142em, \u017ce warto da\u0107 mu troch\u0119 mi\u0142o\u015bci i \"czasu antenowego\".<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Dodatkowo, urzek\u0142a mnie pewna \"multimedialno\u015b\u0107\" publikacji Loiane, kt\u00f3ra to poza talkiem w ostatnich tygodniach opublikowa\u0142a  <a href=\"https:\/\/loiane.com\/2024\/03\/visual-studio-code-for-java-the-complete-guide\/\">Visual Studio Code for Java: The Complete Guide (Tips, Setup, and Extensions)<\/a> opowiadaj\u0105cy, jak w 2024 roku pracowa\u0107 z VSCode w projektach javowych. Artyku\u0142 g\u0142adko wprowadza w niezb\u0119dne kroki, ustawienia i dodatki do VSCode, autorka zaleca rozpocz\u0119cie od Coding Pack for Java, kt\u00f3ry \u0142\u0105czy w sobie VSCode, JDK i niezb\u0119dne rozszerzenia, co upraszcza pocz\u0105tkowy proces konfiguracji. Przewodnik opisuje poszczeg\u00f3lne funkcje, od tych zupe\u0142nie podstawowych po zaawansowane, w tym zarz\u0105dzanie wersjami JDK czy narz\u0119dzi testowania i debugowania oraz korzystanie z rozszerze\u0144 do zarz\u0105dzania projektem, analizy kodu czy bezpiecze\u0144stwa aplikacji. Na samej Javie si\u0119 zreszt\u0105 tutaj nie ko\u0144czy - Loiane opisuje te\u017c przyk\u0142adow\u0105 konfiguracj\u0119 dla Springa, obs\u0142ug\u0119 mikrouserwis\u00f3w czy integracj\u0119 z Dockerem.<\/p>\n","innerContent":["\n<p>Dodatkowo, urzek\u0142a mnie pewna \"multimedialno\u015b\u0107\" publikacji Loiane, kt\u00f3ra to poza talkiem w ostatnich tygodniach opublikowa\u0142a  <a href=\"https:\/\/loiane.com\/2024\/03\/visual-studio-code-for-java-the-complete-guide\/\">Visual Studio Code for Java: The Complete Guide (Tips, Setup, and Extensions)<\/a> opowiadaj\u0105cy, jak w 2024 roku pracowa\u0107 z VSCode w projektach javowych. Artyku\u0142 g\u0142adko wprowadza w niezb\u0119dne kroki, ustawienia i dodatki do VSCode, autorka zaleca rozpocz\u0119cie od Coding Pack for Java, kt\u00f3ry \u0142\u0105czy w sobie VSCode, JDK i niezb\u0119dne rozszerzenia, co upraszcza pocz\u0105tkowy proces konfiguracji. Przewodnik opisuje poszczeg\u00f3lne funkcje, od tych zupe\u0142nie podstawowych po zaawansowane, w tym zarz\u0105dzanie wersjami JDK czy narz\u0119dzi testowania i debugowania oraz korzystanie z rozszerze\u0144 do zarz\u0105dzania projektem, analizy kodu czy bezpiecze\u0144stwa aplikacji. Na samej Javie si\u0119 zreszt\u0105 tutaj nie ko\u0144czy - Loiane opisuje te\u017c przyk\u0142adow\u0105 konfiguracj\u0119 dla Springa, obs\u0142ug\u0119 mikrouserwis\u00f3w czy integracj\u0119 z Dockerem.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>A \u017ceby zako\u0144czy\u0107 temat Visual Studio Code, to w lutym ukaza\u0142a si\u0119 <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=Oracle.oracle-java\">spora aktualizacja dla oficjalnego rozszerzenia dla Javy od Oracle<\/a>. Obejmuje ona wsparcie nowych funkcji z \u015bwie\u017co opublikowanego JDK 22, a tak\u017ce wprowadzenie opcji w menu kontekstowym umo\u017cliwiaj\u0105cej uruchamianie dowolnego projektu oraz dodane wsparcie dla u\u017cywania r\u00f3\u017cnych JDK w ka\u017cdym obszarze roboczym, odchodz\u0105c od przestarza\u0142ej ju\u017c konfiguracji <code>jdk.userdir<\/code>. Ulepszenia obejmuj\u0105 tak\u017ce w\u0142\u0105czenie test\u00f3w TestNG do eksploratora test\u00f3w, funkcj\u0119 \"Id\u017a do testu\", oraz now\u0105 konfiguracj\u0119 dla argument\u00f3w VM zdefiniowanych przez u\u017cytkownika do uruchamiania serwera j\u0119zyka Java.<\/p>\n","innerContent":["\n<p>A \u017ceby zako\u0144czy\u0107 temat Visual Studio Code, to w lutym ukaza\u0142a si\u0119 <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=Oracle.oracle-java\">spora aktualizacja dla oficjalnego rozszerzenia dla Javy od Oracle<\/a>. Obejmuje ona wsparcie nowych funkcji z \u015bwie\u017co opublikowanego JDK 22, a tak\u017ce wprowadzenie opcji w menu kontekstowym umo\u017cliwiaj\u0105cej uruchamianie dowolnego projektu oraz dodane wsparcie dla u\u017cywania r\u00f3\u017cnych JDK w ka\u017cdym obszarze roboczym, odchodz\u0105c od przestarza\u0142ej ju\u017c konfiguracji <code>jdk.userdir<\/code>. Ulepszenia obejmuj\u0105 tak\u017ce w\u0142\u0105czenie test\u00f3w TestNG do eksploratora test\u00f3w, funkcj\u0119 \"Id\u017a do testu\", oraz now\u0105 konfiguracj\u0119 dla argument\u00f3w VM zdefiniowanych przez u\u017cytkownika do uruchamiania serwera j\u0119zyka Java.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2 class=\"wp-block-heading\">2. Czy kt\u00f3ra\u015b z JVM jest najbardziej \"zielona\"?<\/h2>\n","innerContent":["\n<h2 class=\"wp-block-heading\">2. Czy kt\u00f3ra\u015b z JVM jest najbardziej \"zielona\"?<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"id":17961,"sizeSlug":"large","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-1-1024x585.png\" alt=\"\" class=\"wp-image-17961\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-1-1024x585.png\" alt=\"\" class=\"wp-image-17961\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Wszelkiej ma\u015bci redukcja emisji i ochrona \u015brodowiska to kwestie, kt\u00f3re ostatnimi laty s\u0105 coraz bardziej dyskutowane. Osobi\u015bcie bardzo je lubi\u0119, bo to jeden z ciekawszych biznesowych (pomijaj\u0105c oczywiste cost-optimization) temat\u00f3w, kt\u00f3re argumentuj\u0105 pisanie wydajniejszych, lepiej skaluj\u0105cych si\u0119 aplikacji. Nagle mo\u017ce si\u0119 okaza\u0107, \u017ce bran\u017cowa zasada \"czas programist\u00f3w jest cenniejszy ni\u017c czas serwer\u00f3w\" mo\u017ce przesta\u0107 obowi\u0105zywa\u0107, je\u015bli we\u017amiemy pod uwag\u0119 te\u017c koszty \u015brodowiskowe. Z drugiej strony, nie wolno si\u0119 da\u0107 zwariowa\u0107 i do tematu podchodzi\u0107 z g\u0142ow\u0105, si\u0119gaj\u0105c najpierw po najni\u017cej wisz\u0105ce owoce, a nie robi\u0107 klasyczn\u0105 \"premature optimization\" - bo w oryginalnym cytacie mniej wi\u0119cje chodzi\u0142o o to, \u017ceby najpierw optymaliizowa\u0107 algorytm, a nie robi\u0107 czarn\u0105 magi\u0119 na rejestrach procesora, ale ca\u0142kiem mo\u017cliwe \u017ce te\u017c poszukiwanie \"odpowiedniej\" implementacji maszyny wirtualnej. Czy pomi\u0119dzy poszczeg\u00f3lnymi wariantami JVM istnieje jaka\u015b r\u00f3\u017cnica pod k\u0105tem zu\u017cycia energii? Na szcz\u0119\u015bcie kto\u015b to sprawdzi\u0142 i por\u00f3wna\u0142 za nas po in\u017cyniersku.<\/p>\n","innerContent":["\n<p>Wszelkiej ma\u015bci redukcja emisji i ochrona \u015brodowiska to kwestie, kt\u00f3re ostatnimi laty s\u0105 coraz bardziej dyskutowane. Osobi\u015bcie bardzo je lubi\u0119, bo to jeden z ciekawszych biznesowych (pomijaj\u0105c oczywiste cost-optimization) temat\u00f3w, kt\u00f3re argumentuj\u0105 pisanie wydajniejszych, lepiej skaluj\u0105cych si\u0119 aplikacji. Nagle mo\u017ce si\u0119 okaza\u0107, \u017ce bran\u017cowa zasada \"czas programist\u00f3w jest cenniejszy ni\u017c czas serwer\u00f3w\" mo\u017ce przesta\u0107 obowi\u0105zywa\u0107, je\u015bli we\u017amiemy pod uwag\u0119 te\u017c koszty \u015brodowiskowe. Z drugiej strony, nie wolno si\u0119 da\u0107 zwariowa\u0107 i do tematu podchodzi\u0107 z g\u0142ow\u0105, si\u0119gaj\u0105c najpierw po najni\u017cej wisz\u0105ce owoce, a nie robi\u0107 klasyczn\u0105 \"premature optimization\" - bo w oryginalnym cytacie mniej wi\u0119cje chodzi\u0142o o to, \u017ceby najpierw optymaliizowa\u0107 algorytm, a nie robi\u0107 czarn\u0105 magi\u0119 na rejestrach procesora, ale ca\u0142kiem mo\u017cliwe \u017ce te\u017c poszukiwanie \"odpowiedniej\" implementacji maszyny wirtualnej. Czy pomi\u0119dzy poszczeg\u00f3lnymi wariantami JVM istnieje jaka\u015b r\u00f3\u017cnica pod k\u0105tem zu\u017cycia energii? Na szcz\u0119\u015bcie kto\u015b to sprawdzi\u0142 i por\u00f3wna\u0142 za nas po in\u017cyniersku.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":17963,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-2.png\" alt=\"\" class=\"wp-image-17963\"\/><figcaption class=\"wp-element-caption\">\u017beby nie wpa\u015b\u0107 w pu\u0142apk\u0119 krzykliwych nag\u0142\u00f3wk\u00f3w. PS: \"Real ones\" te\u017c istniej\u0105.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-2.png\" alt=\"\" class=\"wp-image-17963\"\/><figcaption class=\"wp-element-caption\">\u017beby nie wpa\u015b\u0107 w pu\u0142apk\u0119 krzykliwych nag\u0142\u00f3wk\u00f3w. PS: \"Real ones\" te\u017c istniej\u0105.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ionuta Balosin, kt\u00f3rego mo\u017cecie kojarzy\u0107 z eksperyment\u00f3w nad wydajno\u015bci\u0105 JVM, tym razem postanowi\u0142 p\u00f3j\u015b\u0107 za ciosem i w publikacji <a href=\"https:\/\/ionutbalosin.com\/2024\/03\/analyzing-jvm-energy-consumption-for-jdk-21-an-empirical-study\/\">Analyzing JVM Energy Consumption for JDK 21: An Empirical Study<\/a> dok\u0142adnie zbada\u0107 wzorce zu\u017cycia energii w r\u00f3\u017cnych JVM. W tym celu skorzysta\u0142 z linii polece\u0144, takich jak <code>powerstat<\/code> i <code>powermetrics<\/code>, oraz fizycznych urz\u0105dze\u0144 pomiarowych (takich jak mierniki mocy pod\u0142\u0105czane do gniazdka), aby zebra\u0107 jak najbardziej realne dane o zu\u017cyciu energii. Te narz\u0119dzia pozwalaj\u0105 oceni\u0107 wydajno\u015bci JVM na r\u00f3\u017cnych architekturach, gdy\u017c <code>powerstat<\/code> oferuje wgl\u0105d w zu\u017cycie mocy za po\u015brednictwem interfejsu Intel's Running Average Power Limit (RAPL) na systemach GNU\/Linux, a <code>powermetrics<\/code> pe\u0142ni podobn\u0105 funkcj\u0119 na macOS dla architektur ARM64. RAPL jest szczeg\u00f3lnie istotny ze wzgl\u0119du na szczeg\u00f3\u0142owe raportowanie zu\u017cycia energii w r\u00f3\u017cnych komponentach, takich jak CPU i DRAM, w granularny spos\u00f3b, chocia\u017c nawet on nie obejmuje wszystkich komponent\u00f3w systemu, takich jak interfejsy sieciowe czy urz\u0105dzenia do przechowywania danych.<\/p>\n","innerContent":["\n<p>Ionuta Balosin, kt\u00f3rego mo\u017cecie kojarzy\u0107 z eksperyment\u00f3w nad wydajno\u015bci\u0105 JVM, tym razem postanowi\u0142 p\u00f3j\u015b\u0107 za ciosem i w publikacji <a href=\"https:\/\/ionutbalosin.com\/2024\/03\/analyzing-jvm-energy-consumption-for-jdk-21-an-empirical-study\/\">Analyzing JVM Energy Consumption for JDK 21: An Empirical Study<\/a> dok\u0142adnie zbada\u0107 wzorce zu\u017cycia energii w r\u00f3\u017cnych JVM. W tym celu skorzysta\u0142 z linii polece\u0144, takich jak <code>powerstat<\/code> i <code>powermetrics<\/code>, oraz fizycznych urz\u0105dze\u0144 pomiarowych (takich jak mierniki mocy pod\u0142\u0105czane do gniazdka), aby zebra\u0107 jak najbardziej realne dane o zu\u017cyciu energii. Te narz\u0119dzia pozwalaj\u0105 oceni\u0107 wydajno\u015bci JVM na r\u00f3\u017cnych architekturach, gdy\u017c <code>powerstat<\/code> oferuje wgl\u0105d w zu\u017cycie mocy za po\u015brednictwem interfejsu Intel's Running Average Power Limit (RAPL) na systemach GNU\/Linux, a <code>powermetrics<\/code> pe\u0142ni podobn\u0105 funkcj\u0119 na macOS dla architektur ARM64. RAPL jest szczeg\u00f3lnie istotny ze wzgl\u0119du na szczeg\u00f3\u0142owe raportowanie zu\u017cycia energii w r\u00f3\u017cnych komponentach, takich jak CPU i DRAM, w granularny spos\u00f3b, chocia\u017c nawet on nie obejmuje wszystkich komponent\u00f3w systemu, takich jak interfejsy sieciowe czy urz\u0105dzenia do przechowywania danych.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":17965,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-3.png\" alt=\"\" class=\"wp-image-17965\"\/><figcaption class=\"wp-element-caption\">Co ciekawe, tekst ani przez sekund\u0119 nie wspomina o Windowsie.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-3.png\" alt=\"\" class=\"wp-image-17965\"\/><figcaption class=\"wp-element-caption\">Co ciekawe, tekst ani przez sekund\u0119 nie wspomina o Windowsie.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>W swoich eksperymentach Balosin przeprowadzi\u0142 testy na szeregu aplikacji, od znanych demo-projekt\u00f3w, takich jak Spring PetClinic i Quarkus Hibernate ORM Panache, po niestandardowe aplikacji, kt\u00f3re pozwoli\u0142y na zbadania konkretnych wzorc\u00f3w kodowania i ich wp\u0142ywu na zu\u017cycie energii, takie jak poszczeg\u00f3lne metody dost\u0119pu do pami\u0119ci, praktyki logowania, mechanizmy obs\u0142ugi wyj\u0105tk\u00f3w, metody \u0142\u0105czenia ci\u0105g\u00f3w znak\u00f3w oraz algorytmy sortowania o r\u00f3\u017cnej z\u0142o\u017cono\u015bci. Ka\u017cda JVM by\u0142a testowana w kontrolowanych warunkach, aby zapewni\u0107 sprawiedliwe por\u00f3wnanie, z uwzgl\u0119dnieniem minimalizacji zewn\u0119trznych zmiennych, kt\u00f3re mog\u0142yby zniekszta\u0142ci\u0107 pomiary, jak zapewnienie odpowiedniego obci\u0105\u017cenia JVM.<\/p>\n","innerContent":["\n<p>W swoich eksperymentach Balosin przeprowadzi\u0142 testy na szeregu aplikacji, od znanych demo-projekt\u00f3w, takich jak Spring PetClinic i Quarkus Hibernate ORM Panache, po niestandardowe aplikacji, kt\u00f3re pozwoli\u0142y na zbadania konkretnych wzorc\u00f3w kodowania i ich wp\u0142ywu na zu\u017cycie energii, takie jak poszczeg\u00f3lne metody dost\u0119pu do pami\u0119ci, praktyki logowania, mechanizmy obs\u0142ugi wyj\u0105tk\u00f3w, metody \u0142\u0105czenia ci\u0105g\u00f3w znak\u00f3w oraz algorytmy sortowania o r\u00f3\u017cnej z\u0142o\u017cono\u015bci. Ka\u017cda JVM by\u0142a testowana w kontrolowanych warunkach, aby zapewni\u0107 sprawiedliwe por\u00f3wnanie, z uwzgl\u0119dnieniem minimalizacji zewn\u0119trznych zmiennych, kt\u00f3re mog\u0142yby zniekszta\u0142ci\u0107 pomiary, jak zapewnienie odpowiedniego obci\u0105\u017cenia JVM.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Wyniki bada\u0144 nie s\u0105 rewolucyjne, ale jednak zawieraj\u0105 par\u0119 ciekawych obserwacji. Na przyk\u0142ad, Oracle GraalVM Native Image, zw\u0142aszcza gdy jest zoptymalizowany za PGO (Profile-Guided Optimization), wykaza\u0142 korzystny balans mi\u0119dzy efektywno\u015bci\u0105 energetyczn\u0105 a wydajno\u015bci\u0105, podkre\u015blaj\u0105c potencjalne korzy\u015bci z Ahead-of-Time Compilation w celu zmniejszenia zu\u017cycia energii w czasie dzia\u0142ania. Jednak\u017ce oczywi\u015bcie ka\u017cdy kij ma dwa ko\u0144ce - wi\u0105za\u0142o si\u0119 to z konieczno\u015bci\u0105 wy\u017cszego zu\u017cycia energii na procesu budowania, a \u017ce r\u00f3\u017cnica nie by\u0142a jaka\u015b wyj\u0105tkowo widoczna, to osi\u0105gni\u0119cie maksymalnej efektywno\u015bci energetycznej wymaga odpowiedniej... priorytetyzacji. Ponadto, badanie uwidoczni\u0142o z\u0142o\u017cono\u015b\u0107 relacji mi\u0119dzy zu\u017cyciem energii a wydajno\u015bci\u0105 w r\u00f3\u017cnych JVM i typach aplikacji, ze wzgl\u0119du na ogromn\u0105 ilo\u015b\u0107 element\u00f3w ruchomych. To sprawia, \u017ce trudno jest wyci\u0105gn\u0105\u0107 szerokie wnioski na temat efektywno\u015bci energetycznej, poniewa\u017c najbardziej efektywna energetycznie JVM w jednym scenariuszu mo\u017ce nie utrzyma\u0107 tego tytu\u0142u w r\u00f3\u017cnych warunkach lub z r\u00f3\u017cnymi typami aplikacji. Wnioski s\u0105 wi\u0119c... no w\u0142a\u015bnie nie ma ich za wiele, ale sam eksperyment jest mega ciekawy i osobi\u015bcie uwielbiam niezwyk\u0142\u0105 wnikliwo\u015b\u0107 Ionuta.<\/p>\n","innerContent":["\n<p>Wyniki bada\u0144 nie s\u0105 rewolucyjne, ale jednak zawieraj\u0105 par\u0119 ciekawych obserwacji. Na przyk\u0142ad, Oracle GraalVM Native Image, zw\u0142aszcza gdy jest zoptymalizowany za PGO (Profile-Guided Optimization), wykaza\u0142 korzystny balans mi\u0119dzy efektywno\u015bci\u0105 energetyczn\u0105 a wydajno\u015bci\u0105, podkre\u015blaj\u0105c potencjalne korzy\u015bci z Ahead-of-Time Compilation w celu zmniejszenia zu\u017cycia energii w czasie dzia\u0142ania. Jednak\u017ce oczywi\u015bcie ka\u017cdy kij ma dwa ko\u0144ce - wi\u0105za\u0142o si\u0119 to z konieczno\u015bci\u0105 wy\u017cszego zu\u017cycia energii na procesu budowania, a \u017ce r\u00f3\u017cnica nie by\u0142a jaka\u015b wyj\u0105tkowo widoczna, to osi\u0105gni\u0119cie maksymalnej efektywno\u015bci energetycznej wymaga odpowiedniej... priorytetyzacji. Ponadto, badanie uwidoczni\u0142o z\u0142o\u017cono\u015b\u0107 relacji mi\u0119dzy zu\u017cyciem energii a wydajno\u015bci\u0105 w r\u00f3\u017cnych JVM i typach aplikacji, ze wzgl\u0119du na ogromn\u0105 ilo\u015b\u0107 element\u00f3w ruchomych. To sprawia, \u017ce trudno jest wyci\u0105gn\u0105\u0107 szerokie wnioski na temat efektywno\u015bci energetycznej, poniewa\u017c najbardziej efektywna energetycznie JVM w jednym scenariuszu mo\u017ce nie utrzyma\u0107 tego tytu\u0142u w r\u00f3\u017cnych warunkach lub z r\u00f3\u017cnymi typami aplikacji. Wnioski s\u0105 wi\u0119c... no w\u0142a\u015bnie nie ma ich za wiele, ale sam eksperyment jest mega ciekawy i osobi\u015bcie uwielbiam niezwyk\u0142\u0105 wnikliwo\u015b\u0107 Ionuta.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>A je\u015bli temat Wam si\u0119 spodoba\u0142, to przyznam, \u017ce (jak na pocz\u0105tku wspomnia\u0142em) sam w tym roku wpad\u0142em w kr\u00f3licz\u0105 nor\u0119 wszelkiej ma\u015bci temat\u00f3w zwi\u0105zanych sustainability. Dlatego mam dla Was kilka lektur dodatkowych, kt\u00f3re sam uwa\u017cam za szczeg\u00f3lnie ciekawe, ale te\u017c uwidaczniaj\u0105ce, jak z\u0142o\u017conym jest poruszany przez nie problem.<\/p>\n","innerContent":["\n<p>A je\u015bli temat Wam si\u0119 spodoba\u0142, to przyznam, \u017ce (jak na pocz\u0105tku wspomnia\u0142em) sam w tym roku wpad\u0142em w kr\u00f3licz\u0105 nor\u0119 wszelkiej ma\u015bci temat\u00f3w zwi\u0105zanych sustainability. Dlatego mam dla Was kilka lektur dodatkowych, kt\u00f3re sam uwa\u017cam za szczeg\u00f3lnie ciekawe, ale te\u017c uwidaczniaj\u0105ce, jak z\u0142o\u017conym jest poruszany przez nie problem.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li><a href=\"https:\/\/greenlab.di.uminho.pt\/wp-content\/uploads\/2017\/09\/paperSLE.pdf\">Energy Efficiency across Programming Languages<\/a><\/li>\n","innerContent":["\n<li><a href=\"https:\/\/greenlab.di.uminho.pt\/wp-content\/uploads\/2017\/09\/paperSLE.pdf\">Energy Efficiency across Programming Languages<\/a><\/li>\n"]},{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li><a href=\"https:\/\/arxiv.org\/abs\/2211.02001\">Estimating the Carbon Footprint of BLOOM, a 176B Parameter Language Model<\/a><\/li>\n","innerContent":["\n<li><a href=\"https:\/\/arxiv.org\/abs\/2211.02001\">Estimating the Carbon Footprint of BLOOM, a 176B Parameter Language Model<\/a><\/li>\n"]},{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li><a href=\"https:\/\/sustainability.google\/progress\/energy\/\">Google: Operating on 24\/7 Carbon-Free Energy by 2030<\/a><\/li>\n","innerContent":["\n<li><a href=\"https:\/\/sustainability.google\/progress\/energy\/\">Google: Operating on 24\/7 Carbon-Free Energy by 2030<\/a><\/li>\n"]},{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li><a href=\"https:\/\/arxiv.org\/abs\/2204.05149\">The Carbon Footprint of Machine Learning Training Will Plateau, Then Shrink<\/a><\/li>\n","innerContent":["\n<li><a href=\"https:\/\/arxiv.org\/abs\/2204.05149\">The Carbon Footprint of Machine Learning Training Will Plateau, Then Shrink<\/a><\/li>\n"]},{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li><a href=\"https:\/\/stateof.greensoftware.foundation\/\">2023 State of Green Software<\/a> od Green Software Foundation<\/li>\n","innerContent":["\n<li><a href=\"https:\/\/stateof.greensoftware.foundation\/\">2023 State of Green Software<\/a> od Green Software Foundation<\/li>\n"]},{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li><a href=\"https:\/\/w3c.github.io\/sustyweb\/\">Web Sustainability Guidelines (WSG) 1.0<\/a><\/li>\n","innerContent":["\n<li><a href=\"https:\/\/w3c.github.io\/sustyweb\/\">Web Sustainability Guidelines (WSG) 1.0<\/a><\/li>\n"]},{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li><a href=\"https:\/\/greensoftware.foundation\/articles\/software-carbon-intensity-sci-specification-project\">Software Carbon Intensity (SCI) Specification Project<\/a><\/li>\n","innerContent":["\n<li><a href=\"https:\/\/greensoftware.foundation\/articles\/software-carbon-intensity-sci-specification-project\">Software Carbon Intensity (SCI) Specification Project<\/a><\/li>\n"]},{"blockName":"core\/list-item","attrs":[],"innerBlocks":[],"innerHTML":"\n<li><a href=\"https:\/\/www.sciencedirect.com\/science\/article\/pii\/S2666389922001878\">The real climate and transformative impact of ICT: A critique of estimates, trends, and regulations<\/a><\/li>\n","innerContent":["\n<li><a href=\"https:\/\/www.sciencedirect.com\/science\/article\/pii\/S2666389922001878\">The real climate and transformative impact of ICT: A critique of estimates, trends, and regulations<\/a><\/li>\n"]}],"innerHTML":"\n<ul>\n\n\n\n\n\n\n\n\n\n\n\n\n\n<\/ul>\n","innerContent":["\n<ul>",null,"\n\n",null,"\n\n",null,"\n\n",null,"\n\n",null,"\n\n",null,"\n\n",null,"\n\n",null,"<\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Polecam, je\u015bli chcecie lepiej poczu\u0107 klimat tematu. Wystarczaj\u0105co paper\u00f3w, aby\u015bmy byli w stanie zrobi\u0107 sobie takie nasze ma\u0142e \"Papers We Love\". Jest to te\u017c efekt mojego researchu, kt\u00f3ry potrzebowa\u0142em na potrzeby nowego talka <a href=\"https:\/\/www.slideshare.net\/slideshow\/the-state-of-the-green-it-at-the-beginning-of-2024\/267106323\">The State of the Green IT at the beginning of 2024<\/a> (spoiler - w maju b\u0119d\u0119 mia\u0142 okazje go prezentowa\u0107 na JUG Copenhagen, b\u0119d\u0119 pewnie dawa\u0142 zna\u0107). Ca\u0142o\u015b\u0107 cz\u0119\u015bciowo pokrywa si\u0119 te\u017c z tekstem <a href=\"https:\/\/virtuslab.com\/blog\/business-insights\/what-is-green-it\/\">What is Green IT - Strategies and trends lined out<\/a>, kt\u00f3ry mia\u0142em kiedy\u015b okazj\u0119 skrobn\u0105\u0107.<\/p>\n","innerContent":["\n<p>Polecam, je\u015bli chcecie lepiej poczu\u0107 klimat tematu. Wystarczaj\u0105co paper\u00f3w, aby\u015bmy byli w stanie zrobi\u0107 sobie takie nasze ma\u0142e \"Papers We Love\". Jest to te\u017c efekt mojego researchu, kt\u00f3ry potrzebowa\u0142em na potrzeby nowego talka <a href=\"https:\/\/www.slideshare.net\/slideshow\/the-state-of-the-green-it-at-the-beginning-of-2024\/267106323\">The State of the Green IT at the beginning of 2024<\/a> (spoiler - w maju b\u0119d\u0119 mia\u0142 okazje go prezentowa\u0107 na JUG Copenhagen, b\u0119d\u0119 pewnie dawa\u0142 zna\u0107). Ca\u0142o\u015b\u0107 cz\u0119\u015bciowo pokrywa si\u0119 te\u017c z tekstem <a href=\"https:\/\/virtuslab.com\/blog\/business-insights\/what-is-green-it\/\">What is Green IT - Strategies and trends lined out<\/a>, kt\u00f3ry mia\u0142em kiedy\u015b okazj\u0119 skrobn\u0105\u0107.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ostatni\u0105 rzecz\u0105, kt\u00f3r\u0105 chcia\u0142em poleci\u0107 tym, kt\u00f3rzy chcieliby sprawdzi\u0107 efektywno\u015b\u0107 energetyczn\u0105 swoich aplikacji jest za\u015b <a href=\"https:\/\/github.com\/joular\/joularjx\">JoularX<\/a>, czyli Agent Javowy s\u0142u\u017c\u0105cy w\u0142a\u015bnie do pomiar\u00f3w energii, \u0142\u0105cznie z rozbiciem na poszczeg\u00f3lne metody. Sam u\u017cywa\u0142em go w projektach dla klient\u00f3w chc\u0105cych spe\u0142ni\u0107 wymogi wchodz\u0105cej w tym roku w \u017cycie regulacji CSRD (cho\u0107 przyznam \u017ce g\u0142\u00f3wnie na specjalne \u017cyczenie, wbrew temu co si\u0119 o niej s\u0105dzi Unia Europejskiej raczej nie b\u0119dzie Wam benchmarkowa\u0107 kodu) i jest wygodny w u\u017cyciu, cho\u0107 analiza samych danych wymaga nieco samozaparcia.<\/p>\n","innerContent":["\n<p>Ostatni\u0105 rzecz\u0105, kt\u00f3r\u0105 chcia\u0142em poleci\u0107 tym, kt\u00f3rzy chcieliby sprawdzi\u0107 efektywno\u015b\u0107 energetyczn\u0105 swoich aplikacji jest za\u015b <a href=\"https:\/\/github.com\/joular\/joularjx\">JoularX<\/a>, czyli Agent Javowy s\u0142u\u017c\u0105cy w\u0142a\u015bnie do pomiar\u00f3w energii, \u0142\u0105cznie z rozbiciem na poszczeg\u00f3lne metody. Sam u\u017cywa\u0142em go w projektach dla klient\u00f3w chc\u0105cych spe\u0142ni\u0107 wymogi wchodz\u0105cej w tym roku w \u017cycie regulacji CSRD (cho\u0107 przyznam \u017ce g\u0142\u00f3wnie na specjalne \u017cyczenie, wbrew temu co si\u0119 o niej s\u0105dzi Unia Europejskiej raczej nie b\u0119dzie Wam benchmarkowa\u0107 kodu) i jest wygodny w u\u017cyciu, cho\u0107 analiza samych danych wymaga nieco samozaparcia.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>PS: Je\u017celi macie tego typu wyzwania i chcieliby\u015bcie pogada\u0107 jak do tego mo\u017cna podej\u015b\u0107, to ja bardzo <a href=\"https:\/\/calendly.com\/askowronski\/15min\">ch\u0119tnie wbije si\u0119 na kawk\u0119<\/a>. To jest naprawd\u0119 interesuj\u0105cy temat.<\/p>\n","innerContent":["\n<p>PS: Je\u017celi macie tego typu wyzwania i chcieliby\u015bcie pogada\u0107 jak do tego mo\u017cna podej\u015b\u0107, to ja bardzo <a href=\"https:\/\/calendly.com\/askowronski\/15min\">ch\u0119tnie wbije si\u0119 na kawk\u0119<\/a>. To jest naprawd\u0119 interesuj\u0105cy temat.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"id":17972,"sizeSlug":"large","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/IMG_2052-1024x768.jpeg\" alt=\"\" class=\"wp-image-17972\"\/><figcaption class=\"wp-element-caption\">PS2: A na koniec klasycznie polecam ksi\u0105\u017ck\u0119 \"Not the End of the World\", kt\u00f3ra pomo\u017ce Wam nie zwariowa\u0107 w zalewie wspomnianych wy\u017cej nag\u0142\u00f3wk\u00f3w. Najg\u0142o\u015bniejsza ostatnio pozycja w temacie, bardzo fajnie zniuansowana je\u015bli chodzi o dob\u00f3r statystyk.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/IMG_2052-1024x768.jpeg\" alt=\"\" class=\"wp-image-17972\"\/><figcaption class=\"wp-element-caption\">PS2: A na koniec klasycznie polecam ksi\u0105\u017ck\u0119 \"Not the End of the World\", kt\u00f3ra pomo\u017ce Wam nie zwariowa\u0107 w zalewie wspomnianych wy\u017cej nag\u0142\u00f3wk\u00f3w. Najg\u0142o\u015bniejsza ostatnio pozycja w temacie, bardzo fajnie zniuansowana je\u015bli chodzi o dob\u00f3r statystyk.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2 class=\"wp-block-heading\">3. CRaC: Szczeg\u00f3\u0142owy poradnik od AWS oraz wsparcie w Alpaquita Linux<\/h2>\n","innerContent":["\n<h2 class=\"wp-block-heading\">3. CRaC: Szczeg\u00f3\u0142owy poradnik od AWS oraz wsparcie w Alpaquita Linux<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"id":17959,"sizeSlug":"large","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-1024x585.png\" alt=\"\" class=\"wp-image-17959\"\/><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-1024x585.png\" alt=\"\" class=\"wp-image-17959\"\/><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ostatnim, troch\u0119 zaleg\u0142ym tekstem, kt\u00f3ry jednak bardzo dobrze wpisuje si\u0119 w m\u00f3j zakres zainteresowa\u0144 jest marcowy tekst od AWSa, w kt\u00f3rym to dostawca chmurowy opisuje, w jaki spos\u00f3b u\u017cywa\u0107 CRaC-a, aby zapewni\u0107 bardziej \"natywne chmurowo\" u\u017cytkownie Javowych aplikacji. Czym jest CRaC wspomina\u0142em wielokrotnie (dla nowych os\u00f3b polecam jedn\u0105 z poprzednich edycji), ale sumarycznie m\u00f3wimy tutaj o nak\u0142adce na Linuxowy mechanizm CRIU (Checkpoint\/Restore In Userspace), kt\u00f3ry pozwala zrzuci\u0107 ca\u0142y proces na dysk twardy, by nast\u0119pnie by\u0107 w stanie wystartowa\u0107 go z tak zapisanego checkpointu. W publikacji <a href=\"https:\/\/aws.amazon.com\/blogs\/containers\/using-crac-to-reduce-java-startup-times-on-amazon-eks\/\">Using CRaC to reduce Java startup times on Amazon EKS<\/a> AWS prezentuje szczeg\u00f3\u0142ow\u0105 instrukcje, w jaki spos\u00f3b przej\u015b\u0107 ca\u0142y proces, i to na wszystkich warstwach - samej chmury (w tym np. IAM i container registry), poprzez Kubernetesa, Dockera, ko\u0144cz\u0105c na integracji mechanizmu w aplikacji. To chyba pierwszy tak przekrojowy tutorial na kt\u00f3ry trafi\u0142em, i co pewnie nieco przera\u017ca to fakt, jak du\u017co jednak kolejnych krok\u00f3w i element\u00f3w ruchomych jest niezb\u0119dne, aby m\u00f3c uzyska\u0107 oczekiwane zyski. Efekt zdecydowanie jest tego warty - zej\u015bcie z 12 sekund do poni\u017cej sekundy to jest zdecydowanie co\u015b, co w wielu przypadkach (ekh ekh - autosklowanie) motywuje do grzebania.<\/p>\n","innerContent":["\n<p>Ostatnim, troch\u0119 zaleg\u0142ym tekstem, kt\u00f3ry jednak bardzo dobrze wpisuje si\u0119 w m\u00f3j zakres zainteresowa\u0144 jest marcowy tekst od AWSa, w kt\u00f3rym to dostawca chmurowy opisuje, w jaki spos\u00f3b u\u017cywa\u0107 CRaC-a, aby zapewni\u0107 bardziej \"natywne chmurowo\" u\u017cytkownie Javowych aplikacji. Czym jest CRaC wspomina\u0142em wielokrotnie (dla nowych os\u00f3b polecam jedn\u0105 z poprzednich edycji), ale sumarycznie m\u00f3wimy tutaj o nak\u0142adce na Linuxowy mechanizm CRIU (Checkpoint\/Restore In Userspace), kt\u00f3ry pozwala zrzuci\u0107 ca\u0142y proces na dysk twardy, by nast\u0119pnie by\u0107 w stanie wystartowa\u0107 go z tak zapisanego checkpointu. W publikacji <a href=\"https:\/\/aws.amazon.com\/blogs\/containers\/using-crac-to-reduce-java-startup-times-on-amazon-eks\/\">Using CRaC to reduce Java startup times on Amazon EKS<\/a> AWS prezentuje szczeg\u00f3\u0142ow\u0105 instrukcje, w jaki spos\u00f3b przej\u015b\u0107 ca\u0142y proces, i to na wszystkich warstwach - samej chmury (w tym np. IAM i container registry), poprzez Kubernetesa, Dockera, ko\u0144cz\u0105c na integracji mechanizmu w aplikacji. To chyba pierwszy tak przekrojowy tutorial na kt\u00f3ry trafi\u0142em, i co pewnie nieco przera\u017ca to fakt, jak du\u017co jednak kolejnych krok\u00f3w i element\u00f3w ruchomych jest niezb\u0119dne, aby m\u00f3c uzyska\u0107 oczekiwane zyski. Efekt zdecydowanie jest tego warty - zej\u015bcie z 12 sekund do poni\u017cej sekundy to jest zdecydowanie co\u015b, co w wielu przypadkach (ekh ekh - autosklowanie) motywuje do grzebania.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Nieco zabawnym jest za\u015b, \u017ce w artykule przewija si\u0119 nie w\u0142asna dystrybucja JDK od Amazonu, czyli Corretto, ale Zulu od Azula. Przypomina to tylko o fakcie, \u017ce jednak CRaC nie jest oficjaln\u0105 cz\u0119\u015bci\u0105 OpenJDK, a jedynie opcjonalnym dodatkiem. Dlatego tak naprawd\u0119 wspiera go w tej chwili zaledwie w\u0142a\u015bnie Zulu oraz Liberica od BellSoftu.<\/p>\n","innerContent":["\n<p>Nieco zabawnym jest za\u015b, \u017ce w artykule przewija si\u0119 nie w\u0142asna dystrybucja JDK od Amazonu, czyli Corretto, ale Zulu od Azula. Przypomina to tylko o fakcie, \u017ce jednak CRaC nie jest oficjaln\u0105 cz\u0119\u015bci\u0105 OpenJDK, a jedynie opcjonalnym dodatkiem. Dlatego tak naprawd\u0119 wspiera go w tej chwili zaledwie w\u0142a\u015bnie Zulu oraz Liberica od BellSoftu.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Co ciekawe, to w\u0142a\u015bnie ta ostatnia firma postanowi\u0142a upro\u015bci\u0107 \u017cycie wszystkim potencjalnym u\u017cytkownikom CRaCa. Jak ju\u017c wspomina\u0142em, instrukcja od Amazonu jest d\u0142uga i skomplikowana, dlatego in\u017cynierowie z BellSoftu postanowili ca\u0142y proces nam nieco upro\u015bci\u0107. Firma, poza w\u0142asnym wariantem JDK, tworzy bowiem r\u00f3wnie\u017c w\u0142asn\u0105, opart\u0105 na Alpine dystrybucje Linuxa o nazwie Alpaquita, specjalnie sprofilowan\u0105 pod u\u017cycie z Jav\u0105. Ta dost\u0119pna jest r\u00f3wnie\u017c w formie <a href=\"https:\/\/hub.docker.com\/r\/bellsoft\/liberica-runtime-container\">gotowych kontener\u00f3w<\/a>, w tym od teraz takich <a href=\"https:\/\/bell-sw.com\/blog\/bellsoft-releases-alpaquita-containers-with-coordinated-restore-at-checkpoint-support\/\">z prekonfigurowanym CRaC-iem<\/a>. Oczywi\u015bcie, upraszcza to tylko cz\u0119\u015b\u0107 z wyzwa\u0144, przed kt\u00f3rymi stawia nas lektura tekstu AWS-a, ale wydaje si\u0119, \u017ce warto spr\u00f3bowa\u0107 Liberici, je\u015bli szukacie \u0142atwego wej\u015bcia w \u015bwiat CRaCu.<\/p>\n","innerContent":["\n<p>Co ciekawe, to w\u0142a\u015bnie ta ostatnia firma postanowi\u0142a upro\u015bci\u0107 \u017cycie wszystkim potencjalnym u\u017cytkownikom CRaCa. Jak ju\u017c wspomina\u0142em, instrukcja od Amazonu jest d\u0142uga i skomplikowana, dlatego in\u017cynierowie z BellSoftu postanowili ca\u0142y proces nam nieco upro\u015bci\u0107. Firma, poza w\u0142asnym wariantem JDK, tworzy bowiem r\u00f3wnie\u017c w\u0142asn\u0105, opart\u0105 na Alpine dystrybucje Linuxa o nazwie Alpaquita, specjalnie sprofilowan\u0105 pod u\u017cycie z Jav\u0105. Ta dost\u0119pna jest r\u00f3wnie\u017c w formie <a href=\"https:\/\/hub.docker.com\/r\/bellsoft\/liberica-runtime-container\">gotowych kontener\u00f3w<\/a>, w tym od teraz takich <a href=\"https:\/\/bell-sw.com\/blog\/bellsoft-releases-alpaquita-containers-with-coordinated-restore-at-checkpoint-support\/\">z prekonfigurowanym CRaC-iem<\/a>. Oczywi\u015bcie, upraszcza to tylko cz\u0119\u015b\u0107 z wyzwa\u0144, przed kt\u00f3rymi stawia nas lektura tekstu AWS-a, ale wydaje si\u0119, \u017ce warto spr\u00f3bowa\u0107 Liberici, je\u015bli szukacie \u0142atwego wej\u015bcia w \u015bwiat CRaCu.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":17976,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-5.png\" alt=\"\" class=\"wp-image-17976\"\/><figcaption class=\"wp-element-caption\">Ten \u017cart nigdy nie przestanie mnie \u015bmieszy\u0107.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2024\/04\/image-5.png\" alt=\"\" class=\"wp-image-17976\"\/><figcaption class=\"wp-element-caption\">Ten \u017cart nigdy nie przestanie mnie \u015bmieszy\u0107.<\/figcaption><\/figure>\n"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/17958","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/comments?post=17958"}],"version-history":[{"count":10,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/17958\/revisions"}],"predecessor-version":[{"id":17985,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/17958\/revisions\/17985"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media\/17981"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=17958"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=17958"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=17958"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}