
Technological University Dublin ARROW@TU Dublin Dissertations School of Computer Sciences 2018 A JavaScript Framework Comparison Based on Benchmarking Software Metrics and Environment Configuration Jefferson Ferreira Follow this and additional works at: https://arrow.tudublin.ie/scschcomdis Part of the Computer Sciences Commons Recommended Citation Ferreira, Jefferson (2018). A javascript framework comparison based on benchmarking software metrics and environment configuration . Masters dissertation, DIT, 2018. This Dissertation is brought to you for free and open access by the School of Computer Sciences at ARROW@TU Dublin. It has been accepted for inclusion in Dissertations by an authorized administrator of ARROW@TU Dublin. For more information, please contact [email protected], [email protected]. This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 4.0 License A JavaScript framework comparison based on benchmarking software metrics and environment configuration Jefferson Ferreira BSc, Computer Science, Universidade Veiga de Almeida, 2012 A dissertation submitted in partial fulfilment of the requirements of Dublin Institute of Technology for the degree of M.Sc. in Computing (Advanced Software Development) January 2018 I certify that this dissertation which I now submit for examination for the award of MSc in Computing (Knowledge Management), is entirely my own work and has not been taken from the work of others save and to the extent that such work has been cited and acknowledged within the test of my work. This dissertation was prepared according to the regulations for postgraduate study of the Dublin Institute of Technology and has not been submitted in whole or part for an award in any other Institute or University. The work reported on in this dissertation conforms to the principles and requirements of the Institute’s guidelines for ethics in research. Jefferson Luiz da Conceição Ferreira Signed: _________________________________ Date: 03 January 2018 i ABSTRACT JavaScript is a client-side programming language that can be used in multi-platform applications. It controls HTML and CSS to manipulate page behaviours and is widely used in most websites over the internet. JavaScript frameworks are structures made to help web developers build web applications faster by offering features that enhance the user interaction with the web page. An increasing number of JavaScript frameworks have been released in recent years in the market to help front-end developers build applications in a shorter space of time. Decision makers in software companies have been struggling to determine which frameworks are best suited for a specific project. This work investigates the actual state-of-the-art of JavaScript framework comparison, and it proposes metrics and methods that could help developers when choosing a JavaScript framework. In this work, a benchmark framework executes tasks to test the efficiency of three JavaScript frameworks (AngularJS, Aurelia, and Ember). The research shows the impact of the environment (CPU usage and network connectivity) on JavaScript frameworks. Keywords: JavaScript, JavaScript framework comparison, performance testing, benchmarking, test environment, JavaScript framework adoption ii ACKNOWLEDGEMENTS I would like to express my sincere thanks to my supervisor Dr John Gilligan who was extremely patient, attentive with me; always suggesting improvements that challenged my knowledge and enhanced my confidence in my technical skills. I would also like to thank my family, especially my mother who was always supportive in my decisions and gave a lot of strength to pursue this degree. Thanks to all my friends who were always there for me in every difficult and stressful moment that I went through during the course. iii TABLE OF CONTENTS ABSTRACT ................................................................................................................ II TABLE OF FIGURES ............................................................................................ VII TABLE OF TABLES ................................................................................................ IX 1 INTRODUCTION ................................................................................................. 1 1.1 BACKGROUND .................................................................................................... 1 1.2 RESEARCH PROJECT/PROBLEM ........................................................................... 2 1.3 RESEARCH OBJECTIVES ...................................................................................... 3 1.4 RESEARCH METHODOLOGIES ............................................................................. 4 1.5 SCOPE AND LIMITATIONS ................................................................................... 4 1.6 DOCUMENT OUTLINE ......................................................................................... 5 2 LITERATURE REVIEW .................................................................................... 6 2.1 INTRODUCTION ................................................................................................... 6 2.2 JAVASCRIPT AND JAVASCRIPT FRAMEWORKS .................................................... 6 2.2.1 AngularJS ............................................................................................... 7 2.2.2 Ember ...................................................................................................... 8 2.2.3 Aurelia .................................................................................................... 9 2.2.4 JavaScript frameworks comparison ..................................................... 10 2.2.5 System processes ................................................................................... 12 2.2.6 Asynchronous programming explained ................................................ 16 2.2.7 Promises explained ............................................................................... 18 2.3 PERFORMANCE EVALUATION ............................................................................ 20 2.3.1 Benchmarking ....................................................................................... 21 2.3.2 Other performance evaluations types ................................................... 22 2.3.3 Benchmarking JavaScript frameworks ................................................. 23 2.3.4 Benchmarking databases ...................................................................... 25 2.3.5 TODO benchmark application ............................................................. 27 2.4 BENCHMARKING METRICS ................................................................................ 29 2.5 PERFORMANCE.NOW (CLOCK) .......................................................................... 30 2.6 VIRTUAL MACHINE VS DUAL BOOT ................................................................. 32 iv 2.7 CHAPTER SUMMARY ......................................................................................... 33 3 DESIGN AND METHODOLOGY ................................................................... 34 3.1 INTRODUCTION ................................................................................................. 34 3.2 JAVASCRIPT FRAMEWORK BENCHMARK APPLICATION ..................................... 34 3.3 RESTFUL API .................................................................................................. 38 3.4 GOOGLE CLOUD PLATFORM ............................................................................. 40 3.5 NETWORK......................................................................................................... 41 3.6 EXPERIMENT DESIGN ....................................................................................... 42 3.7 CHAPTER SUMMARY ......................................................................................... 44 4 IMPLEMENTATION AND RESULTS ........................................................... 45 4.1 INTRODUCTION ................................................................................................. 45 4.2 SOFTWARE USED .............................................................................................. 45 4.3 FRAMEWORK IMPLEMENTATIONS ..................................................................... 46 4.3.1 RESTful API .......................................................................................... 46 4.3.2 Clock settings ........................................................................................ 51 4.3.3 Processes .............................................................................................. 51 4.3.4 AngularJS ............................................................................................. 52 4.3.5 Aurelia .................................................................................................. 54 4.3.6 Ember .................................................................................................... 55 4.4 ENVIRONMENT CONFIGURATION ...................................................................... 57 4.5 RESULTS ........................................................................................................... 57 4.6 CHAPTER SUMMARY ......................................................................................... 58 5 ANALYSIS, EVALUATION AND DISCUSSION .......................................... 59 5.1 INTRODUCTION ................................................................................................
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages108 Page
-
File Size-