Return to search

Utility Library Performance Compared to Native Solutions : JavaScript as a Case Study / Prestanda av Verktygbibliotek Jämfört med Inbyggda Lösningar : JavaScript som en Fallstudie

Modern software development often involves using third-party libraries to prevent re-inventing the wheel, however, it is not always certain that they are the best solution. Within web development using JavaScript, there has been some debate on whether or not popular utility libraries have become obsolete as the language and ECMA script have been updated throughout the years. This work aimed to study the performance of three of the most popular JavaScript libraries to give better insight into how using utility libraries can impact performance. To achieve this, several of the library functions were benchmarked against native JavaScript implementations within three different metrics, execution time, memory usage, and file size. These metrics were found by combining the methods of previous works and focusing on web application performance impact. In the end, there were no major performance impacts when using utility libraries in JavaScript, however, the libraries did add somewhat significant loading time in the form of increased file sizes. While it is unclear how the results in this study relate to general use cases, the results suggest that native solutions generally perform slightly faster and with less memory usage. There were, however, some exceptions with certain library functions outperforming the native solutions. The work also provides information about how benchmarking in JavaScript can be particularly tricky due to the garbage collector and the Just-In-Time compilation. Lastly, there were also some unexpected findings with JavaScript performance differences between browsers. / Idag används ofta tredjepartsbibliotek inom modern mjukvaruutveckling. Men många utvecklare ifrågasätter om det alltid är den bästa lösningen. Inom webbutveckling har det varit en del debatt om populära verktygsbibliotek fortfarande är relevanta nu när ECMA-script har uppdaterats allt eftersom. Det här arbetet undersöker prestandan av tre populära JavaScript bibliotek, Lodash, date-fns, och moment, för att ge insikt i hur verktygsbiblioteken kan potentiellt ha prestanda konsekvenser inom web applikationer. För att uppnå detta mål har vi jämfört flera stycken biblioteksfunktioner med deras inbyggda motsvarigheter. I slutändan var det inga större skillnader med att använda biblioteken förutom att nedladdningstiden kan vara betydligt större på grund av filstorlerkarna. Det är fortfarande inte klart hur bibliotek presterar i allmänna användningsfall, då experimentet utfördes på helt slumpmässig data. Däremot presterade inbyggda lösningar allmänt snabbare och med mindre minnesanvändning, med vissa undantag inom Lodash biblioteket. Arbetet gav också insikt i hur det kan bli svårt att mäta JavaScript på grund av skräpsamlingen och Just-In-Time kompileringen.

Identiferoai:union.ndltd.org:UPSALLA1/oai:DiVA.org:kth-330724
Date January 2022
CreatorsWilliams, Sebastian
PublisherKTH, Skolan för elektroteknik och datavetenskap (EECS), Stockholm : KTH Royal Institute of Technology
Source SetsDiVA Archive at Upsalla University
LanguageEnglish
Detected LanguageEnglish
TypeStudent thesis, info:eu-repo/semantics/bachelorThesis, text
Formatapplication/pdf
Rightsinfo:eu-repo/semantics/openAccess
RelationTRITA-EECS-EX ; 2023:210

Page generated in 0.0028 seconds