2010-01-12

En dag i prestandans tecken

På förmiddagen var jag hos kund och diskuterade integration mellan den webbplats vi bygger åt dem och ett av deras existerande system som en förvaltas och ägs av ett annat bolag. Vi ska hämta information och presentera den på webbplatsen och vi kom snabbt in på frågor om hur ofta uppdateringar av informationen sker och om vi kommer behöva oroa oss över prestandafrågor. Vi bestämde oss för den enkla lösningen med en statisk xml-fil som vi hämtar in, översätter till objekt och cachar på servern. Vi låter ett schemalagt jobb ligga och kolla xml-filen med tät regelbundenhet för att se om den har uppdaterats. I så fall översätter vi på nytt till objekt och cachar   på servern. Sedan kan vår webbapplikation läsa objekten i godan ro och xml-filen hämtas bara när det behövs.

På eftermiddag kom jag tillbaka till kontoret och där hade jag lämnat över manageranden av daily scrum för det stora projektet till arkitekten Laila. En fråga som dykt upp som kvarstod var även den av prestandakaraktär. Funktionen (user storyn) var färdig och Ronny skulle egentligen utropa den som "done" men var inte nöjd med prestandan. Skulle vi fixa prestandan nu eller senare? Eftersom det handlade om hela sju sekunders fördröjning vid bläddring mellan två rapporter kände jag inte att det var ett alternativ att kalla user storyn "done" utan att fixa prestandaproblemet.

Så då kom vi in på andra prestandadiskussionen för dagen. Prestandadiskussioner är annars något som inte är så vanligt, men denna dag var det två. I det här fallet bestämde vi oss för att läsa upp alla rapporter som fanns i det sökresultat som användaren fått. Men vi gör det i bakgrunden i en egen tråd. Så fort användaren har gjort sin sökning och fått sitt resultat börjar vi att läsa upp alla rapporter i bakgrunden och cacha dem. Gör användaren en ny sökning tömmer vi cachen och börjar på nytt. Att köra bakgrundstrådar kan vara vanskligt. Det gäller att se till att avsluta den så fort användaren gör ny sökning eller byter funktion. Vi vill inte ha bakgrundsjobb som ligger och kör till ingen nytta.

En dag i prestandans tecken.

Inga kommentarer:

Skicka en kommentar