Vrchol neoptimálnosti
Jsou “programátorské perly”, které by stálo za to někde vystavit. Jednou z takovýchto “perel” je i následující magický kousek kódu, při jehož čtení vám spadne brada dolu. Soukromě jsem ho nazval “vrchol neoptimálnosti” a to nejsem nějaká citlivka.
private boolean canConvertValue(String fieldName) {
for (int i = 11000; i < 16000; i++)
if (fieldName.compareTo(“Z” + i) == 0) return false;
// pokud nic nenajdu, tak muzu konvertovat
return true;
}
Tato metoda je navíc v kontextu volána velice neoptimálně. fieldName je název sloupečku v databázi a metoda se volá pro každý vrácený řádek z resultsetu. Co zpracovaný řádek to přibližně 100, slovy jedno sto, volání této metody. Za 50 minut profilování CPU, se v této metodě strávilo 4,75% strojového času. Celkově se pouze v této metodě strávilo 270 sekund. Naštěstí se vlastní SQL volalo za těch 50 minut pouze třiatřicetkrát.
Související články
Související epizody CZ Podcastu
- #261 · Leadership
O vedení lidí a týmů.
- #3 · Java 6 SE, Vývoj webových aplikací
Dagi a Filemon o novinkách v Javě 6 a webových frameworcích.
- #1 · Vývojová prostředí v Javě
První díl CZ Podcastu se věnuje vývojovým prostředím pro Javu.