Analysere resultater i Enterprise Javabeans

January 30  by Eliza

Analyserer prestasjonene er trolig en av de mest komplekse oppgaver i å utforme et program. Det er en upresis vitenskap fordi det er mange faktorer som spiller inn. Disse er utvidet i Enterprise Javabeans (EJB) applikasjoner, hvor ytelsen i stor grad avhenger av gjennomføringen av EJB container du bruker. Poenget er at du ikke kan vite om du gjør de riktige ytelses beslutninger før du har testet dem.

Følgende er noen spørsmål som du bør huske på når du vurderer ytelsesproblemer:

  • Ikke alle EJB containere er skapt like. Mens hver EJB container må samsvare med EJB spesifikasjonen, leverandører har stort spillerom i gjennomføringen av EJB container. Deres krav fokusere på utfallet av operasjoner, ikke på en operasjon effektivitet. Noen leverandører vil gjøre en bedre jobb med ulike deler av en EJB container. Du må finne ut hvor effektivitet kan oppnås i en EJB container og hvor ytelse flaskehalser skal skje. Den eneste måten å vite at med sikkerhet er å prøve før du kjøper. Selv etter at du kjøper en løsning, store design beslutninger, for eksempel om ikke å bruke EJB foretakets bønner, bør testes.
  • Ytelsen kan stole på effektiviteten av søknaden din. Det er generelle regler som du kan bruke til å finne ut hvilket program design er bedre enn andre. Men disse retningslinjene kan lett ugyldig med en slurvete gjennomføring. Den beste måten å sikre at du unngår slurvete implementeringer er å utføre regelmessige kode anmeldelser - det er når du sitter rundt med alle dine koding medarbeidere og få dem gjennom arbeidet ditt - under EJB prosjektet. Du bør fokusere kode anmeldelser på å analysere kilden og sikre at det er både godt utformet og effektiv. Kode anmeldelser tilbyr en flott mulighet for programmerere å lære av hverandre.
  • Utvikle en prototype for å teste ytelsen forutsetninger. Her er et eksempel scenario. Som en EJB programutvikler, bør du bestemme tidlig om ikke å bruke foretakets bønner for å administrere samspill med en database. Dine to grunnleggende valg er å

Lag foretakets bønner for å administrere databasen samhandling. Entity bønner kan forenkle din database interaksjon fra et programmerings perspektiv. Men de kan også nøyaktig en forestilling straff. Noen av at straff kan styres på den måten at du implementerer foretakets bønner - det vil si ved hjelp av lokale grensesnitt versus eksterne grensesnitt eller ved å gjøre foretakets bønner grovkornete stedene.

Kode JDBC database samtaler direkte til sesjonsbønner og unngå bruk av foretakets bønner sammen. JDBC kan være vanskeligere å jobbe med enn å bruke foretakets bønner med container-administrerte utholdenhet. Dette kurset kan også undergrave din evne til å dra nytte av EJB container-administrerte transaksjoner.

Å avgjøre hvilke av de to kursene er mer hensiktsmessig, kan du utføre en enkel test:

1. Opprett en enhet bønne og en session bean at både utføre operasjoner på samme sett med data fra en database.

2. Skriv et enkelt program som måler hvor mye tid som kreves for å påkalle et sett av innstikk, oppdateringer, spørringer og endringer i databasen.

Denne andre program bør påkalle økten bønne for en test og den enhet Bean for en annen test - utfører samme sett av operasjoner på hver.

3. Analyser resultatene for å avgjøre om ytelsen vil være et problem.

Hvis du ønsker en mer finkornet ytelse analyse, kan du tid enkelte trinn - for å identifisere den dyreste drift - og deretter prøve å endre disse operasjonene for å generere ytelsesgevinster.

For en enhet Bean, kan det være lurt å måle ytelsen på følgende operasjoner:

  • Hvor lang tid tar det å få en henvisning til en ekstern grensesnitt eller en lokal grensesnitt?
  • Hva er forskjellen i ytelse mellom å utføre en oppdatering på en ekstern grensesnitt og en lokal grensesnitt?
  • Hva er forskjellen mellom å oppdatere flere rader i en database i JDBC og utføre en oppdatering på flere rader i samme hjemme metoden for en enhet Bean?

Svarene på disse spørsmålene vil være forskjellig fra EJB container til EJB container, og vil også påvirkes av: a) JDBC driver du velge; b) om du bruker database tilkoblingsgrupper; og c) effektiviteten av implementeringer av enhet Bean og økten bønne. Du vil sannsynligvis bli overrasket over noen av de resultatene du får - tester som disse har en måte å utfordre dine antagelser om resultatene av foretakets bønner.

Når du er tuning en EJB for ytelse, ikke gjør tilfeldige endringer. I stedet fokuserer oppmerksomheten på trinnene i programmet som koster mest når det gjelder ytelse.

Merk: Driftsmålinger vanligvis avsløre at en forretningsprosess har bare ett eller to punkter hvor betydelige forbedringer kan gjøres. Denne observasjonen er gjort ofte nok til at det førte til opprettelsen av Pareto 80-20 regelen. At regelen sier at 80 prosent av kjøretiden av et program skyldes 20 prosent av koden. Målet ditt bør være å identifisere hvilke 20 prosent av koden er dyreste i form av systemressurser og fokusere på å optimalisere den delen.