Fredrik Flovén

Tillståndshanteringsmodellers påverkan på realtidsprestanda i ensideapplikationer

Sammanfattning

Valet av tillståndsmodell, dvs. hur tillståndet hanteras i en applikation, är en viktig del av applikationsutveckling. I den här avhandlingen undersöker vi hur körtidens prestanda påverkas när man hanterar ett delat tillstånd med hjälp av en relativ tillståndsmodell jämfört med att använda en global tillståndsmodell, i en komponentbaserad enside-applikation.

För att jämföra de två tillståndsmodellerna gjordes två implementationer av en enkel applikation med samma funktionalitet, men som hanterar applikationstillstånd på två olika sätt. Två experiment, var och en som fokuserar på en dimension av applikationsstruktur, gjordes för att jämföra skriptprestanda för implementeringarna under tillståndsuppdateringen. Resultaten visade att tillståndsmodellerna påverkar skriptprestandan, men att det var beroende på applikationens struktur. I experiment 1 visade den globala tillståndsmodellen en mycket större prestandaminskning jämfört med den relativa tillståndsmodellen när många komponenter var beroende av tillståndet. Observationer av "reconciliation"-processerna visade att orsaken till prestandaskillnaderna berodde på icke-optimiserade synkrona DOM-mutationer introducerade av komponenterna som använde det globala tillståndshanteringsramverket. I experiment 2 visade den relativa tillståndsmodellen emellertid en sämre prestandaminskning för en djup komponentstruktur än den globala tillståndsmodellen, men jämfört med föregående det experimentet var skillnaden liten.

Sammantaget tyder resultaten från den här studien på att körningsprestanda kan vara en faktor att beakta när man väljer tillståndsmodell för en applikation. Applikationsstrukturen, inklusive applikationens komplexitet, påverkar emellertid vilken tillståndsmodell som är att föredra och i vilken utsträckning den påverkar skriptprestandan och därmed realtidsprestandan.