Abstract
To increase the performance of web applications, programmers are increasingly turning to parallel programming. The main question of this paper is whether the most popular Parallel.js library performs better than other parallel processing solutions available. Other questions are concerned with the conditions under which Parallel.js offers the best performance gains as well as its advantages and disadvantages.
The review of literature indicated that there is no research regarding Parallel.js library and similar libraries. Similar libraries were chosen based on state of art review which suggests that the most similar libraries to Parallel.js are Operative.js for the client-side of application and Hurried for the server-side. Web Workers were also chosen to compare if those libraries are better than their base technology.
To answer the stated questions, experiments with Parallel.js and similar libraries were conducted. Experiments were divided into client-side and server-side categories. Client-side experiments were performed for Web Workers, Parallel.js and Operative.js libraries and on two web browsers with different JavaScript engines: Google Chrome and Mozilla Firefox. The server-side experiments were performed for Web Workers, Parallel.js and Hurried libraries on Node.js JavaScript environment.
The results showed that Parallel.js library is the best of all those tested only for the client-side of the application. On the server-side, the performance of Parallel.js is ranked in the middle between the other two tested technologies. The results also revealed that Parallel.js is best for task-based data processing rather than performing calculations. It was noticed that the best performance is achieved for number of Web Workers equal to number of CPU cores and for Google Chrome.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
DocumentObjectModel.
- 2.
Only few experiments had uncertainty of measure higher than 5% of base measure, so this difficulty has no impact on overall results.
References
Mozilla: Using Web Workers (2020). https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers. Accessed 20 July 2020
WHATWG: Web Workers specification (2020). https://html.spec.whatwg.org/multipage/workers.html. Accessed 20 July 2020
Savitzky, A.: Parallel.js main page (2020). https://parallel.js.org/. Accessed 20 July 2020
Padolsey, J.: Operative.js (2020). https://github.com/padolsey/operative. Accessed 20 July 2020
Yankouski, A.: Hurried library (2020). https://github.com/yankouskia/hurried. Accessed 20 July 2020
Boduch, A.: JavaScript Concurrency. Pact Publishing (2015)
Na, Y., Kim, S., Han, Y.: JavaScript parallelizing compiler for exploiting parallelism from data-parallel HTML5 applications. ACM Trans. Architect. Code Optim. (TACO) 12(4), 1–25 (2016)
Martinsen, J., Grahn, H., Isberg, A.: The effects of parameter tuning in software thread-level speculation in JavaScript engines. ACM Trans. Archit. Code Optim. (TACO) 11(4), 1–25 (2015)
Martinsen, J., Grahn, H., Isberg, A.: Combining thread–level speculation and just–in–time compilation in Google’s V8 JavaScript engine. Concurr. Comput. Pract. Exp. 29(1) (2017)
Verdu, J., Pajuelo, A.: Performance scalability analysis of JavaScript applications with web workers. IEEE Comput. Archit. Lett. 15(2), 105–108 (2016)
Verdu, J., Costa, J.J., Pajuelo, A.: Dynamic web worker pool management for highly parallel JavaScript web applications. Concurr. Comput. Pract. Exp. 28(13), 3525–3539 (2016)
Padolsey, J.: Abstracting The Web Worker: Operative (2013). https://j11y.io/javascript/abstracting-the-web-worker-operative/. Accessed 23 July 2020
Horde Solutions: Closing the hamsters.js project (2020). https://gitlab.com/hordesolutions/Hamsters.js/-/issues/67. Accessed 23 July 2020
Bourgoin, M., Chailloux, E.: High-level accelerated array programming in the web browser. In: Proceedings of the 2nd ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming, pp. 31–36 (2015)
Fält, M.: Concurrency model for the Majo language: an analysis of graph based concurrency. Thesis Project (2020). http://miun.diva-portal.org/smash/get/diva2:1229734/FULLTEXT01.pdf. Accessed 23 July 2020
Freeman, E.: Head First HTML5 Programming: Building Web Apps with JavaScript. O’Reilly Media (2011)
Madhu, G.N.: Parallel Computing in JavaScript: The Guide (2017). http://madhugnadig.com/articles/parallel-processing/2017/03/29/the-guide-to-parallel-programming-in-javascript.html. Accessed 23 Apr 2020
Dirksen, D.: Partial image manipulation with canvas and webworkers (2012). http://www.smartjava.org/content/partial-image-manipulation-canvas-and-webworkers/. Accessed 13 June 2020
Nedialkov, N.: Lecture about parallel quicksort (2016). http://www.cas.mcmaster.ca/~nedialk/COURSES/4f03/Lectures/quicksort.pdf. Accessed 13 June 2020
Sanders, P., Hansch, T.: Efficient massively parallel quicksort. In: Bilardi, G., Ferreira, A., Lüling, R., Rolim, J. (eds.) IRREGULAR 1997. LNCS, vol. 1253, pp. 13–24. Springer, Heidelberg (1997). https://doi.org/10.1007/3-540-63138-0_2
Peng, D., Gujar, R., Wang, A.: Example of PI estimation using Napa.js (2018). https://github.com/microsoft/napajs/tree/master/examples/tutorial/estimate-pi-in-parallel. Accessed 13 June 2020
Saito, T., Yasuda, K., Tanabe, K., Takahashi, K.: Web browser tampering: inspecting CPU features from side-channel information. In: Barolli, L., Xhafa, F., Conesa, J. (eds.) BWCCA 2017. LNDECT, vol. 12, pp. 392–403. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-69811-3_36
Borzemski, L., Kędras, M.: Measured vs. perceived web performance. In: Borzemski, L., Świątek, J., Wilimowska, Z. (eds.) ISAT 2019. AISC, vol. 1050, pp. 285–301. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-30440-9_27
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2022 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Malanowska, K., Nowak, Z. (2022). The Performance Analysis of Web Applications Using Parallel.js Library. In: Borzemski, L., Selvaraj, H., Świątek, J. (eds) Advances in Systems Engineering. ICSEng 2021. Lecture Notes in Networks and Systems, vol 364. Springer, Cham. https://doi.org/10.1007/978-3-030-92604-5_40
Download citation
DOI: https://doi.org/10.1007/978-3-030-92604-5_40
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-92603-8
Online ISBN: 978-3-030-92604-5
eBook Packages: Intelligent Technologies and RoboticsIntelligent Technologies and Robotics (R0)