De oerklacht ‘Java is traag’ wordt vandaag
gecounterd met JIT compilers en snellere
systemen. Maar met een ietwat doordachte
ontwikkelingsaanpak kan makkelijk nog dat extra
pondje performantie uit een Java-toepassing
worden geperst. Java ‘tuning’ rules!
Jack Shirazi en Kirk Pepperdine -
beiden actief bij JavaPerformanceTuning.
com - omschreven hun
benadering als een ‘holistische tuning-
aanpak’, maar je zou het ook
in een oerdegelijke Vlaamse spreuk
kunnen vatten… ‘Bezin eer je begint
en doende denk dan nog!’ Te
gek hoe oude wijsheden in moderne
ontwikkelingsomgevingen het
verschil tussen goede/behoorlijke
code en mooie prestaties kunnen
uitmaken.
In elke fase
Concreet spelen alle aspecten van
een toepassing - inclusief de bijhorende
systeemomgeving, het reële
gebruik, de verwachte levenscyclus,…
- een rol, maar “een goede
performantie moet je plannen in elke
fase van het ontwikkelingsproces,”
aldus Shirazi. Zo moeten ‘performance’
specificaties - zoals responstijden,
‘throughput’ etc voor
verschillende vormen van verwerking,
zoals on-line batch etc - van bij
de aanvang in de specificaties van de
toepassing worden ingeschreven.
Ook mogen ‘vakmanschap’ en expertise
- en de nood om die voortdurend
aan te scherpen - niet worden
onderschat in het performantieproces.
Zo moeten analisten voldoende
inzicht hebben om problemen ten
gevolge van ‘contention’ te vermijden,
en moeten ontwerpen gebruik
maken van de ‘best practices’ en ‘design
patterns’ die het best op de noden
van de toepassing mappen.
Performantie als doel
Opmerkelijk wellicht is dat Shirazi
en co waarschuwen niet tijdens het
ontwikkelen zelf aan ‘performance
testing’ te doen, want het gevaar
zich te concentreren op een verkeerd
deel van de toepassing, is niet
gering. “Performance testen is geen
‘quality assurance’ testen dat nagaat
of iets naar behoren draait of
niet,” klinkt het voorts. Shirazi en
Pepperdine herhalen ten overvloede
dat een volgehouden ontwikkelen
in functie van performantie
meer opbrengt dan het testen op
performantie tijdens de ontwikkeling.
Niet dat er geen testen nodig zijn,
maar die horen thuis in een productie-
omgeving met echte gebruikers
en met goede monitoringfaciliteiten
(van alle significante
onderdelen, als databases, servers,
netwerk…). Een holistische tuning
houdt in dat naar een evenwicht
wordt gezocht tussen het (duur)
bijwerken van de toepassing en het
aanpassen van de systeemomgeving
(“het is nu eenmaal soms
goedkoper gewoonweg een krachtiger
systeem te kopen…”), terwijl
de monitoring-activiteit en een
voldoende lange testperiode er
moeten voor zorgen dat de echte
knelpunten worden blootgelegd.
Een holistische aanpak betekent
dat ook met input van derden
wordt rekening gehouden. “Vaak
kunnen de gebruikers zelf al meteen
aangeven waar zich problemen
voordoen!”
Performantie testen
Het testen zelf vereist een rits expertises,
al dan niet in een enkele
persoon samengebracht (hoewel
dit niet zo vanzelfsprekend is).
Naast de tester zelf moet ook iemand
de resultaten naar behoren
analyseren en moet een ‘tuner’ de
juiste aanpassingen aanbrengen.
Dat alles gekoppeld aan een soliede
en goed onderhouden testomgeving,
met een monitoring-faciliteit
die een evenwicht tussen teveel
overhead en voldoende informatie
moet houden.
by GUY KINDERMANS
Recent Comments