Dnes a zítra probíhá vývojářská konference Google I/O 2025. Sledovat lze na YouTube a na síti 𝕏 (#GoogleIO).
V Bostonu probíhá konference Red Hat Summit 2025. Vybrané přednášky lze sledovat na YouTube. Dění lze sledovat na síti 𝕏 (#RHSummit).
Společnost Red Hat oficiálně oznámila vydání Red Hat Enterprise Linuxu 10. Vedle nových vlastností přináší také aktualizaci ovladačů a předběžné ukázky budoucích technologií. Podrobnosti v poznámkách k vydání.
Tuto sobotu 24. května se koná historicky první komunitní den projektu Home Assistant. Zváni jsou všichni příznivci, nadšenci a uživatelé tohoto projektu. Pro účast je potřebná registrace. Odkazy na akce v Praze a v Bratislavě.
Troy Hunt představil Have I Been Pwned 2.0, tj. nový vylepšený web služby, kde si uživatelé mohou zkontrolovat, zda se jejich hesla a osobní údaje neobjevily v únicích dat a případně se nechat na další úniky upozorňovat.
Microsoft představil open source textový editor Edit bežící v terminálu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
V Seattlu a také online probíhá konference Microsoft Build 2025. Microsoft představuje své novinky. Windows Subsystem for Linux je nově open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Z příspěvku Turris Sentinel – co přinesl rok 2024 na blogu CZ.NIC: "Za poslední rok (únor 2024 – únor 2025) jsme zachytili 8,3 miliardy incidentů a to z 232 zemí a z jejich závislých území. Tyto útoky přišly od 6,2 milionu útočníků (respektive unikátních adres). SMTP minipot je stále nejlákavější pastí, zhruba 79 % útoků bylo směřováno na tento minipot, 16 % útoků směřovalo na minipot Telnet, 3 % útoků směřovaly na minipot HTTP a 2 % na minipot FTP. Dále jsme zaznamenali 3,2 milionu unikátních hesel a 318 tisíc unikátních loginů, které útočníci zkoušeli."
Byla vydána (Mastodon, 𝕏) nová verze 3.0.4 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.
Byla vydána nová stabilní verze 7.4 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 136. Přehled novinek i s náhledy v příspěvku na blogu.
Jsem zakladatelem tohoto portálu. Linux jsem používal spousty let, nějaký čas jsem se aktivně podílel na jeho propagaci v Česku (CZLUG, časopisy ComputerWorld, Network Magazine atd). Se současným Abíčkem už nemám nic společného.
Sypu si popel na hlavu. Konečně jsem odhalil, proč je server tak strašně zatížen a proč žádná moje optimalizace nezabírá.
Kdysi dávno, nevím odkud, nevím proč, jsem stáhnul volby pro virtuální stroj javy a nastavil jsem je pro jetty, pod kterou běží abíčko. Jedna z těch voleb je -Xint, která zakazuje Just In Time kompilátor a tudíž způsobuje, že java běží výhradně v interpretovaném modu. JIT překládá kód javy do instrukcí procesoru a na základě složitých analýz běhu provádí další optimalizace, díky kterým java může běžet stejně rychle (a někdy i rychleji) než zkompilovaný céčkový program. A já mu to nevědomky zakázal.
Na druhou stranu mi připadá neuvěřitelné, že přesto abíčko dokázalo obsloužit tolik návštěvníků (150 tisíc zobrazených stránek denně) a to velmi rychle. Zkusím malé přirovnání. Je to asi podobné, jako kdyby vám někdo svázal nohy k sobě, přes hlavu přetáhl černý pytel a poslal vás běžet maraton . Ty cache a optimalizace jsou asi dost účinné.
Ráno jsem tedy těch šest písmen smazal a restartoval server. Výsledkem je okamžité načítání stránek a prudký pokles zatížení serveru. Poslední měsíce bylo CPU neustále zatíženo nejméně na 99% a load se pohyboval mezi šesti až třiceti. Dneska ve špičce byl na úrovni 0,25.
Tiskni
Sdílej:
a bastaTo je ale pádný argument
JIT překládá kód javy do instrukcí procesoru a na základě složitých analýz běhu provádí další optimalizace, díky kterým java může běžet stejně rychle (a někdy i rychleji) než zkompilovaný céčkový program.Trošku zjednodušeně: JIT překládá kód Javy na nativní a díky optimalizacím může ten program běžet rychleji než zkompilovaný céčkový kód. Nebo ještě zjednodušeněji: optimalizovaný nativní kód může běžet rychleji než nativní kód. To by jeden neřekl. Když byl JIT vypnutý, ábíčko se vleklo --> interpretovaná Java JE pomalá. Když se přeloží do nativní podoby, funguje mnohem rychleji, ale už to v podstatě není Java (procesor podle instrukcí těžko pozná, v jakém jazyce ten program byl napsán)
interpretovaná Java JE pomalá. Když se přeloží do nativní podoby, funguje mnohem rychleji, ale už to v podstatě není Java (procesor podle instrukcí těžko pozná, v jakém jazyce ten program byl napsán)Pak ale neni duvod zavrhovat javu. Ciste interpretovana java se vyskytovala tak v roce 1996, od te doby vznikly JIT kompilatory a byly vyladeny k maximalni optimalnosti. Java je narocna na pamet, ale v realnych aplikacich z hlediska rychlosti nezaostava za nativnimi programy (tim mam na mysli, ze by byla o nasobky ci rady pomalejsi).
Pak ale neni duvod zavrhovat javu.Jak kde... pokud jde o program, který běží několik týdnů v kuse někde na serveru (žádný příklad mě zrovna nenapadá
Nemyslím, že by interpret byl důvod nějakého výrazného zpomalení.Abych pravdu řekl, nechci se pouštět do nějakých porovnání jak velké zpomalení interpreter způsobí (Když to zjednoduším, Leoš v nadpisu tohoto blogu tvrdí že dvacetinásobné.) To, co tvrdím, je, že to zpomalení je zbytečné, když je tu možnost kód zkompilovat a interpreter úplně vynechat.
Vždy je to něco za něco. Kompilace něco stojí, i proto má Sunovské JRE dva režimy – v prvním se optimalizuje méně (tedy optimalizace je hotová dřív), takže start je rychlý, ale aplikace pak běží pomaleji. Ve druhém aplikace sice startuje dýl, ale optimalizuje se víc.Tady možná došlo k nedorozumění - já mluvil o možnosti kód zkompilovat z jazyka typu C++.
Stejně by se dalo říct, že je zbytečné používat operační systém. Pokud bude program přistupovat přímo k hardwaru, nebudou se "zbytečně" přepínat kontexty uživatelského prostoru a jádra a odpadnou "zbytečná" systémová volání, bude program taky rychlejší.Tohle srovnání tak trochu pokulhává - tohle už tu kdysi bylo a mělo to tu nevýhodu, že šlo spustit jenom jeden program naráz. OS je mezivrstva navíc, ale dle mého mínění ta možnost spouštět víc programů naráz a zabránit jim, aby se mezi sebou chybně ovlivnily, stojí za ten ztracený výkon. JVM nic takového neposkytuje, pro každý spuštění program v Javě se spouští znovu (a rozhodně neříkám, že je to špatně - proč by JVM měl řešit přepínání úloh, když to samé dokáže OS vyřešit za něj). Podle mě ta přidaná hodnota JVM (bez optimalizací) nestojí za to. Samozřejmě je tu velký prostor pro zlepšení. Napadá mě například situace (nevím, jak moc je reálná), kdy by JVM uměl provést optimalizace již při vývoji a testování programu a výsledky do programu uložit, aby je na nejrozšířenějších platformách vůbec nebylo nutné dělat (a aby se při opětovném spuštění mohly rovnou použít). To by podstatně měnilo situaci.
Podle mě ta přidaná hodnota JVM (bez optimalizací) nestojí za to.Dost lidí má asi jiný názor, když vznikají věci jako .NET, podpora virtualizace v Linuxovém jádru nebo virtualizační software. Někdy se to prostě vyplatí a jindy ne – záleží dokonce i na tom, co vše započítáte, takže i u jednoho a toho samého projektu může mít někdo názor, že přidaná hodnota VM je menší, než ztráta výkonu (protože počítá čistě efetktivitu běhu programu), někdo započítá i náklady na vývoj a údržbu programu, a najednou se nějaká přidaná hodnota vykoupená zpomalením vyplatí.
Samozřejmě je tu velký prostor pro zlepšení. Napadá mě například situace (nevím, jak moc je reálná), kdy by JVM uměl provést optimalizace již při vývoji a testování programu a výsledky do programu uložit, aby je na nejrozšířenějších platformách vůbec nebylo nutné dělat (a aby se při opětovném spuštění mohly rovnou použít). To by podstatně měnilo situaci.Při vývoji asi ne, během vývoje se program používá dost netypicky. Ale keš zkompilovaného kódu, která by přežila restart JVM, je jedno z možných řešení. Další možností je sdílení tříd mezi běžícími JVM (implementováno v Sunovském JRE od verze 1.5). Vzhledem k tomu, že např.
gcj
nejspíš nepředstavuje nějaké výrazné zrychlení proti klasické JVM, je spíš než kompilace do strojového kódu důležitá rychlost startu běhového prostředí (GC, classloader, "základní" třídy). Tedy spíš pomůže volitelné ponechávání JVM v paměti a nějaké optimalizace rychlosti startu GUI. Což jsou shodou okolností všechno věci známé z programů psaných v C++ – ať už je to ponechávání v paměti u OOo, Mozilly nebo MSIE, nebo různé prelink techniky grafických prostředí na Linuxu. Je vidět, že programy v Javě i C++ řeší vlastně stejné problémy if
v 99,9 % projde větví else
, takže vytvoří takový strojový kód, aby procesorové cache a "počítání napřed" šlo touhle větví (to je jen příklad, nevím, zda nějaká JVM konkrétně tohle dělá). Samozřejmě, V C si můžete takovou JVM naprogramovat taky, pak bude výsledný program i stejně rychlý – ale může to být zrychlení oproti klasickému Cčkovému if
u optimalizovanému pouze kompilátorem a procesorem.
Blahopřeju k odvaze se veřejně přiznat. Máš mé silné sympatie.
vim ~/.emacs
gcj
plně podporována. Myslím, že gcj
je slepá cesta…
eclipse
používá spoustu nativních knihoven. Mně osobně tedy připadá daleko nepochopitelnější ten Outlook a FF. Java také paměť využívá trochu jiným způsobem – naalokuje si od systému větší kus paměti, kterou si pak spravuje ve vlastní režii (GC). Taky jsem měl dříve pocit, že Java chce víc paměti, ale když to porovnám s FF, OOo, tak mám pocit, že víc paměti chce všechno… V té Javě se alespoň něco pro nižší paměťovou náročnost dělá.
Docela by mne zajímalo, kolik RAM máte a jaké aplikace na tom PC provozujete, protože 1 GB RAM podle mne už na Javu na desktopu stačí, eclipse trochu víc RAM neuškodí. Ne že by mne ty nároky na paměť těšily, ale obávám se, že je to všeobecný trend a paměťová nenažranost Javy se vyřešila/řeší tím, že takové paměťové nároky začínají být běžné.
0.05 0.18 0.21 1/220 10754To je rozdil