Co se optimalizuje

Aplikační architekt a programátor

vlastní kód aplikace, především jeho architekturu, příp. i kód na mikroúrovni vč. doprogramování kódu nativního

Správce nasazení

ve vazbě na běhové prostředí (HW platformu, operační systém, aplikační server atd.) navrhuje vhodnou architekturu nasazení vč. distribuce do svazků (cluster), na "cloud" apod.

Správce cílového (operačního) systému

ladění HW konfigurace, operačního systému, volby při spouštění javové aplikace (paměťové limity, počty vláken), bezpečnostní nastavení (Security Manager)

Poskytovatelé middleware

middleware (např. aplikační server) do značné míry určuje celkovou architekturu řešení, sám poskytuje mnoho služeb, kde výpočty tráví hodně času

Producenti knihoven

totéž, výpočty mohou být v kódu knihoven převážnou část doby běhu, zde má smysl optimalizovat i na mikroúrovni; navíc jsou většinou používány jako black-box a přehlednost kódu není absolutní prioritou

JDK, JRE

překladač a běhové prostředí Javy jsou enormně důležité - podpora cílové platformy (64 bitů, vícejádrové a víceprocesorové stroje, NUMA architektury pamětí...); řadu optimalizací lze provést při překladu do bajtkódu, zbytek pak při spouštění (JIT) a běhu na cílové platformě

Procesory, paměti, výpočetní architektury

64 bitů, vícejádrové a víceprocesorové stroje, NUMA