Java bude pomalá a náročná, když se na ní budou provozovat věci, které jsou napsané nevhodným způsobem (Swing). I v takovém případě může být vhodnější než C. Nedávno jsem si kupoval IntelliJ IDEA Ultimate. Ano, je to aplikace ve Swingu a žere nějakou RAM. Ale kolik by stálo srovnatelné IDE v jazyce C?
Java bude pomalá, když se bude špatně používat. Například časté starty a ukončení v režimu server. (Na Oracle Javě pod x86_64 fakticky jediná možnost.) V režimu client bude taky pomalu startovat, když nebude fungovat Class Data Sharing (otázka jednoho příkazu po instalaci, ale na některých Linuxových distribucích to není/nebylo automatické). Ale start Javy, jakkoli se s tím dá bojovat, nebude asi nikdy rychlý. Leda na speciálních JVM (JamVM, Avian, na Androidu nově libart), ale je potřeba mít představu, kde jsou přednosti/slabiny těchto JVM. Někdy pro rychlost startu pomůže vynutit režim interpretu. Pokud jde o výkon, hlavní oblast Javy je v dlouho běžících aplikacích.
Například JRuby je pomalé, pokud jen na aplikaci zavoláme --help. U dlouhodobě běžících aplikací je ale prý typická optimalizace použít JRuby místo Ruby MRI.
Java bude žrát hodně RAM, pokud je ta RAM k dispozici a pokud se nenastaví velikost heapu. Měl jsem malou aplikaci, která hledala nějaké řešení nějakého problému. Potřebovala O(sqrt(n)) RAM vzhledem k době běhu (čistě vlastnost algoritmu). Doma mi po několika hodinách nežrala ani 100MiB. Na školním serveru to velmi rychle šlo do gigabajtů. Řešení bylo velmi jednoduché - nastavit pravidla pro heap. Na stroji se 128GiB RAM si totiž Java vzala velký heap...
Napsal jsem aplikaci s použitím Play frameworku a jako server jsem dočasně použil Raspberry Pi. (Starší verze s 256MiB RAM.) Prvně se odmítla spustit, protože výchozí heap byl asi 384MiB RAM. No co, nastavil jsem tomu 64MiB (s velkou rezervou, jak jsem zjistil později) a jelo to výborně. Nepoznal jsem subjektivně na výkonu, jestli to běží na notebooku, nebo na Raspberry Pi v místní síti. (Sice místo Javy byla použita z velké části Scala, ale pořád to je na JVM a výkonově je to velmi blízko.)
Naopak Owncloud s PHP-FPM a APC jel na Raspberry Pi dost pomalu. Pravda, zavání to hruškojablkem a je taky fakt, že PHP je prakticky univerzální odpověď na "Znáte něco pomalejšího?". Ale jako jeden z mnoha způsobů, jak ukázat, že Raspberry Pi není zrovna nejvýkonnější (jinde byl Owncloud OK, i na levné VPS), to stačí.