Skip to main content

The Performance Analysis of Web Applications Using Parallel.js Library

  • Conference paper
  • First Online:
Advances in Systems Engineering (ICSEng 2021)

Part of the book series: Lecture Notes in Networks and Systems ((LNNS,volume 364))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 259.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 329.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 329.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

Notes

  1. 1.

    DocumentObjectModel.

  2. 2.

    Only few experiments had uncertainty of measure higher than 5% of base measure, so this difficulty has no impact on overall results.

References

  1. Mozilla: Using Web Workers (2020). https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers. Accessed 20 July 2020

  2. WHATWG: Web Workers specification (2020). https://html.spec.whatwg.org/multipage/workers.html. Accessed 20 July 2020

  3. Savitzky, A.: Parallel.js main page (2020). https://parallel.js.org/. Accessed 20 July 2020

  4. Padolsey, J.: Operative.js (2020). https://github.com/padolsey/operative. Accessed 20 July 2020

  5. Yankouski, A.: Hurried library (2020). https://github.com/yankouskia/hurried. Accessed 20 July 2020

  6. Boduch, A.: JavaScript Concurrency. Pact Publishing (2015)

    Google Scholar 

  7. 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)

    Article  Google Scholar 

  8. 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)

    Article  Google Scholar 

  9. 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)

    Google Scholar 

  10. Verdu, J., Pajuelo, A.: Performance scalability analysis of JavaScript applications with web workers. IEEE Comput. Archit. Lett. 15(2), 105–108 (2016)

    Article  Google Scholar 

  11. 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)

    Article  Google Scholar 

  12. Padolsey, J.: Abstracting The Web Worker: Operative (2013). https://j11y.io/javascript/abstracting-the-web-worker-operative/. Accessed 23 July 2020

  13. Horde Solutions: Closing the hamsters.js project (2020). https://gitlab.com/hordesolutions/Hamsters.js/-/issues/67. Accessed 23 July 2020

  14. 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)

    Google Scholar 

  15. 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

  16. Freeman, E.: Head First HTML5 Programming: Building Web Apps with JavaScript. O’Reilly Media (2011)

    Google Scholar 

  17. 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

  18. 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

  19. Nedialkov, N.: Lecture about parallel quicksort (2016). http://www.cas.mcmaster.ca/~nedialk/COURSES/4f03/Lectures/quicksort.pdf. Accessed 13 June 2020

  20. 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

    Chapter  Google Scholar 

  21. 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

  22. 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

    Chapter  Google Scholar 

  23. 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

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ziemowit Nowak .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2022 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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

Publish with us

Policies and ethics