• No results found

4.1 Experiment

4.1.1 Experiment 1 – Färganimering

Webbläsare: Internet Explorer 8, Internet Explorer 10, Firefox 20, Google Chrome 26 jQuery: Version 1.9.1

jQuery UI: Version 1.10.2 Beskrivning

Färganimering är något som finns som standard i CSS3. Det innebär att ett objekt byter färg från en till en annan med en angiven hastighet. Hur exakt färgövergången går till bestäms av webbläsaren. I detta experiment utfördes en färganimering där två element byter färg. Då färganimering inte finns med som standard i jQuery användes även tillägget jQuery UI som utökar jQuery med bland annat just färganimering.

För experimentet skapades en HTML-fil innehållande två element och dess instruktioner för animering. Det ena elementet instruerades att animeras med CSS3 och det andra med jQuery.

I experimentet utnyttjades det tidigare nämnda stresstestet (nämnt i inledningen) där processtid analyserades med verktyget Windows Performance Monitor. Varje animering pågår i fem sekunder och itererasså många gånger som möjligt under den tid testet pågick.

Detta gjordes för varje webbläsare och för varje animeringstyp och resulterade i totalt sex stycken stresstester (två per webbläsare i totalt tre webbläsare).

Kod

Nedan följer den kod som användes för experiment 1.

<!DOCTYPE html>

<script type="text/javascript" src="jquery.js"></script>

<script type="text/javascript" src="jqueryui.js"></script>

<style>

function animate() {

if (counter < 10) {

$('#worker_jquery').animate({

backgroundColor: '#0000ff' }, 5000, 'linear', function(){

$(this).css('background-color', '#ff0000');

counter++;

animate();

});

} }

</script>

<div id="container">

<input type="button" id="trigger_both" value="Go both" />

<br /><br />

<input type="button" id="trigger_css" value="Go CSS" />

<div id="worker_css"></div>

<br />

<input type="button" id="trigger_jquery" value="Go jQuery" />

<div id="worker_jquery"></div>

</div>

</body>

</html>

Beskrivning av kod

Två behållare med identiskt utseende ligger bredvid varandra på höjden med en respektive start-knapp som påbörjar animeringen vid klick. Det finns även en knapp så påbörjar båda animeringarna samtidigt och används för att lättare kunna se en visuell skillnad när animationerna kördes bredvid varandra.

Nedan följer en illustration av de sekvenser animeringarna går igenom för att lättare ge en förståelse i hur de såg ut när de väl exekveras.

1 2 3

4 5

Fig 8. Sekvensk för animering där bakgrunden byter från röd till blå för att sedan återgå till ursprungsfärgen röd, enligt steg ett till fem.

Behållarna får tillbaka sin ursprungsfärg för varje animeringsmoment. Något som automatiskt sker vid animering med CSS men inte jQuery. Därför återgår ursprungsfärgen även för jQuery-animeringen enligt instruktionerna.

Teknisk analys för Firefox

Detta är en sammanställning av det data insamlad från att ha stresstestat Firefox för färganimering med CSS3 och jQuery.

Fig 9. Processoranvändning och minnesanvändning av Firefox vid utförande av CSS3-animering för experiment 1.

Fig 10. Processoranvändning och minnesanvändning av Firefox vid utförande av jQuery-animering för experiment 1.

Graferna i Fig 9 och Fig 10 visar processoranvändning och minnesanvändning vid utförande av animationerna med CSS3 (Fig 9) och jQuery (Fig 10). Skalan för de båda graferna är 0 till 25 procent vad gällande processoranvändning och 0 till 250 mb för minnesanvändning.

Nedan följer tekniska värden hämtat från samma analys som graferna i Fig 9 och Fig 10 representerar.

CSS3 jQuery Medel processortid 5,598 % 10,997 % Maximal processortid 12,490 % 21,844 % Maximalt använt minne 89,50 MB 150,50 MB

Minimalt använt minne 87,77 MB 106,64 MB Mellanskillnad av minne 1.73 MB 43,86 MB

Fig 11. Värden vid stresstest av Firefox.

Enligt tabellen i Fig 11 utnyttjas mindre processortid och minne vid färganimering med CSS3 än med jQuery för webbläsaren Firefox.

Teknisk analys för Google Chrome

Detta är en sammanställning av det data insamlad från att ha stresstestat Google Chrome för färganimering med CSS3 och jQuery.

Fig 12. Processoranvändning och minnesanvändning av Google Chrome vid utförande av CSS3-animering för experiment 1.

Fig 13. Processoranvändning och minnesanvändning av Google Chrome vid utförande av jQuery-animering för experiment 1.

Graferna i Fig 12 och Fig 13 visar processoranvändning och minnesanvändning vid utförande av animationerna med CSS3 (Fig 12) och jQuery (Fig 13) i stresstestet. Skalan för de båda graferna är 0 till 10 procent vad gällande processoranvändning och 0 till 100 mb för minnesanvändning.

Nedan följer tekniska värden hämtat från samma analys som graferna i Fig 12 och Fig 13 representerar.

CSS3 jQuery Processtyp Medel processortid 2,309 % 1,561 %

Webbläsare Maximal processortid 6,256 % 4,687 %

Maximalt använt minne 56,99 MB 57,05 MB Minimalt använt minne 56,83 MB 56,93 MB Mellanskillnad av minne 0,16 MB 0,12 MB

Medel processortid 1,984 % 1,659 %

GPU Maximal processortid 6,243 % 4,685 %

Maximalt använt minne 46,50 MB 46,50 MB Minimalt använt minne 46,50 MB 46,50 MB Mellanskillnad av minne 0,00 MB 0,00 MB

Medel processortid 0,228 % 2,704 %

Flik Maximal processortid 1,582 % 9,357 %

Maximalt använt minne 13,34 MB 14,54 MB Minimalt använt minne 10,77 MB 11,39 MB Mellanskillnad av minne 2,57 MB 3.15 MB

Snitt av medel processortid 1,507 % 1,975 % Snitt av maximal processortid 4,694 % 6,243 % Totalt maximalt använt minne 116,83 MB 118,09 MB

Totalt minimalt använt minne 114.10 MB 114,82 MB Total mellanskillnad av minne 2.73 MB 3,27 MB

Fig 14. Värden vid stresstest av Google Chrome.

Enligt tabellen i Fig 14 utnyttjas mindre processortid och minne i snitt vid färganimering med CSS3 än med jQuery för webbläsaren Google Chrome.

Teknisk analys för Internet Explorer

Detta är en sammanställning av det data insamlad från att ha stresstestat Internet Explorer för färganimering med CSS3 och jQuery.

Fig 15. Processoranvändning och minnesanvändning av Internet Explorer vid utförande av CSS3-animering för experiment 1.

Fig 16. Processoranvändning och minnesanvändning av Internet Explore vid utförande av jQuery-animering för experiment 1.

Graferna i Fig 15 och Fig 16 visar processoranvändning och minnesanvändning vid utförande av animationerna med CSS3 (Fig 15) och jQuery (Fig 16). Skalan för de båda graferna är 0 till 15 procent vad gällande processoranvändning och 0 till 150 mb för minnesanvändning.

Nedan följer tekniska värden hämtat från samma analys som graferna i Fig 15 och Fig 16 representerar.

CSS3 jQuery Medel processortid 5,079 % 6,251 % Maximal processortid 9,373 % 12,672 % Maximalt använt minne 14,94 MB 16,21 MB Minimalt använt minne 14,72 MB 14,73 MB Mellanskillnad av minne 0,22 MB 1,48 MB

Fig 17. Värden vid stresstest av Internet Explorer.

Enligt tabellen i Fig 17 utnyttjas mindre processortid och minne vid färganimering med CSS3 än med jQuery för webbläsaren Internet Explorer.

Sammanfattning av teknisk analys

• Sammanfattningsvis använder sig webbläsaren Firefox av mest processortid för att utföra animering med såväl CSS3 som jQuery.

• För samtliga webbläsare gäller att animering med CSS3 använder sig av mindre processortid än den för animering med jQuery.

• Google Chrome är den webbläsare som animerar med lägst processortid.

• Google Chrome är även den webbläsare där processortiden skiljer sig minst mellan de olika animeringsmetoderna.

• Minnesanvändningen skiljer sig i mängd mellan de olika webbläsarna men Firefox är den webbläsare som har störst förändring i minnesanvändning mellan de båda animeringmetoderna. En mellanskillnad på hela 43,86 mb. Övriga animeringar oavsett metod och webbläsare hade aldrig en större mellanskillnad i minnesanvändning än 5 mb.

• För webbläsaren Internet Explorer fungerar endast animeringarna med CSS i version 10 och inte version 7, 8 eller 9. jQuery fungerar dock i alla testade versioner av Internet Explorer.

Praktisk analys

Den kod som anger instruktioner för CSS3-animeringen tar upp fler antal tecken än den för instruktioner av jQuery-animeringen. I den kod som används för experimentet utnyttjar CSS3-instruktionerna 15 rader medan jQuery-instruktionerna endast utnyttjar fyra rader (ej medräknat rader med ensamma klammerparanteser och/eller paranteser eller rader som inte direkt kopplas till animeringsinstruktioner). Koden för CSS3-instruktionerna är även itererande på grund av det krav Google Chrome ställer att egenskaperna animation och

@keyframes måste ha prefixen -webkit- för att kunna tolkas och köras av webbläsaren.

Visuell analys

Visuellt uppfattas ingen skillnad på animeringarna. Oavsett webbläsare eller animeringsmetod.

Resultat & disskussion

Animering med jQuery utnyttjar mer processortid än animering med CSS3 oavsett webbläsare. Då Google Chrome visar på lägsta processortid kan den antas som bäst optimerad för animering med färger gällande CSS3 och jQuery. Dock kräver Google Chrome prefixen -webkit- för att animeringsegenskaperna ska kunna utnyttjas.

4.1.2 Experiment 2 – Storleksanimering

Related documents