Skip to main content
Log in

Is Node.js a viable option for building modern web applications? A performance evaluation study

  • Published:
Computing Aims and scope Submit manuscript

Abstract

We examine the implications of end-to-end web application development, in the social web era. The paper describes a distributed architecture, suitable for modern web application development, as well as the interactivity components associated with it. Furthermore, we conducted a series of stress tests, on popular server side technologies. The PHP/Apache stack was found inefficient to address the increasing demand in network traffic. Nginx was found more than 2.5 times faster in input/output (I/O) operations than Apache, whereas Node.js outperformed both. Node.js, although excellent in I/O operations and resource utilization, was found lacking in serving static files using its built in HTTP server, while Nginx performed great at this task. So, in order to address efficiency, an Nginx server could be placed in-front and proxy static file requests, allowing the Node.js processes to only handle dynamic content. Such a configuration can offer a better infrastructure in terms of efficiency and scalability, replacing the aged PHP/Apache stack. Furthermore we have found that building cross platform applications based on web technologies, is both feasible and highly productive, especially when addressing stationary and mobile devices, as well as the fragmentation among them. Our study concludes that Node.js offers client-server development integration, aiding code reusability in web applications, and is the perfect tool for developing fast, scalable network applications.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19

Similar content being viewed by others

References

  1. http://groups.google.co.uk/group/alt.hypertext/msg/06dad279804cb3ba. Accessed 22 Mar 2014

  2. Lueg C, Fisher D (2003) From Usenet to CoWebs: interacting with social information spaces. Springer, Berlin

    Book  Google Scholar 

  3. Facebook Reports Fourth Quarter 2013 and Full Year 2013 Results. http://investor.fb.com/releasedetail.cfm?ReleaseID=821954. Accessed 22 Mar 2014

  4. Holzinger A, Treitler P, Slany W (2012) Making apps useable on multiple different mobile platforms: on interoperability for business application development on smartphones. In: Multidisciplinary Research and Practice for Information Systems. Lecture Notes in Computer Science, vol 7465, pp 176–189

  5. Cisco Visual Networking Index: Global Mobile Data Traffic Forecast Update (2012) 2017 http://www.cisco.com/en/US/solutions/collateral/ns341/ns525/ns537/ns705/ns827/white_paper_c11-520862.html. Accessed 22 Mar 2014

  6. Amatya S, Kurti A (2014) Cross-platform mobile development: challenges and opportunities. In: ICT Innovations 2013, Advances in Intelligent Systems and Computing, Vol 231. Springer, New York, pp 219–229

  7. Ericsson Traffic and Market Report (2012) http://www.ericsson.com/res/docs/2012/traffic_and_market_report_june_2012.pdf. Accessed 22 Mar 2014

  8. Juwel R, Hallberg J, Synnes K, Kristiansson J (2010) Harnessing the cloud for mobile social networking applications. Int J Grid High Perform Comput 2(2):1–11

    Article  Google Scholar 

  9. RFC 6455#section-1.7, http://tools.ietf.org/html/rfc6455. Accessed 22 Mar 2014

  10. Web Server Survey, Netcraft (2013) http://news.netcraft.com/archives/2013/10/02/october-2013-web-server-survey.html. Accessed 22 Mar 2014

  11. PHP just grows and grows, Netcraft (2013) http://news.netcraft.com/archives/2013/01/31/php-just-grows-grows.html. Accessed 22 Mar 2014

  12. Kappel G et al (2004) Web engineeringold wine in new bottles?. Springer, Berlin Heidelberg

    Google Scholar 

  13. W3C, HTML5.1, http://www.w3.org/TR/html51/. Accessed 22 Mar 2014

  14. Juntunen A, Jalonen E, Luukkainen S (2013) HTML 5 in mobile devices-drivers and restraints. System Sciences (HICSS), 46th Hawaii International Conference on IEEE

  15. PhoneGap Framework, http://phonegap.com/. Accessed 22 Mar 2014

  16. Appcelerator Platform, http://www.appcelerator.com/. Accessed 22 Mar 2014

  17. IBM Worklight, http://www-03.ibm.com/software/products/en/worklight/. Accessed 22 Mar 2014

  18. RhoMobile Suite, http://www.motorolasolutions.com/US-EN/Business+Product+and+Services/Software+and+Applications/RhoMobile+Suite. Accessed 22 Mar 2014

  19. White Paper by RapidValue Solutions: How to Choose the Right Architecture For Your Mobile Application (2012)

  20. Mikowski M, Powell J (2013) Single Page Web Applications: JavaScript end-to-end, Manning Publications (Sep 27, 2013, ISBN: 1617290750)

  21. Janne L (2013) On the development of real-time multi-user web applications. Tampereen teknillinen yliopisto. Julkaisu-Tampere University of Technology (Publication 1167)

  22. Antero T, Mikkonen T (2011) The web as an application platform: the saga continues. Software Engineering and Advanced Applications (SEAA), 37th EUROMICRO Conference on. IEEE

  23. Shuang K, Kai F (2013) Research on server push methods in web browser based instant messaging applications. J Softw 8(10):2644–2651

    Article  Google Scholar 

  24. Spyros X, Xinogalos S (2013) A comparative analysis of cross-platform development approaches for mobile applications. Proceedings of the 6th Balkan Conference in Informatics. ACM

  25. Smutny P (2012) Mobile development tools and cross-platform solutions. Carpathian Control Conference (ICCC), 2012 13th International IEEE

  26. Henning H, Hanschke S, Majchrzak TA (2013) Evaluating cross-platform development approaches for mobile applications. Web information systems and technologies. Springer, Berlin Heidelberg

    Google Scholar 

  27. http://nodejs.org/industry/. Accessed 22 Mar 2014

  28. http://www.firebase.com/. Accessed 22 Mar 2014

  29. Tornado: Facebook’s Real-Time Web Framework for Python, http://developers.facebook.com/blog/post/301/. Accessed 22 Mar 2014

  30. Real-Time Delivery Architecture at Twitter, http://www.infoq.com/presentations/Real-Time-Delivery-Twitter. Accessed 22 Mar 2014

  31. Web Server Survey, Netcraft (2013). http://news.netcraft.com/archives/2013/08/09/august-2013-web-server-survey.html. Accessed 22 Mar 2014

  32. Simons P, Babel R (2001) FastCGI the forgotten treasure. ApacheCon Europe

  33. Veal B, Foong A (2007) Performance scalability of a multi-core web server. Proceedings of the 3rd ACM/IEEE Symposium on Architecture for networking and communications systems. ACM

  34. The Zettabyte EraTrends and Analysis. http://www.cisco.com/en/US/solutions/collateral/ns341/ns525/ns537/ns705/ns827/VNI_Hyperconnectivity_WP.html. Accessed 22 Mar 2014

  35. IDC, Press Release. http://www.idc.com/getdoc.jsp?containerId=prUS24108913. Accessed 22 Mar 2014

  36. Android Fregmentation Visualized (2013) http://opensignal.com/reports/fragmentation-2013/fragmentation-2013. Accessed 22 Mar 2014

  37. XMLSocket, AS3. http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/XMLSocket.html. Accessed 22 Mar 2014

  38. Wang V, Salim F, Moskovits P (2013) Deployment considerations. The definitive guide to HTML5 WebSocket, chapter 8. Apress, pp 149–162

  39. Kaplan Andreas M, Haenlein Michael (2010) Users of the world, unite! the challenges and opportunities of social media. Bus horizons 53(1):59–68

    Article  Google Scholar 

  40. Chaniotis IK, Kyriakou KID, Tselikas ND (2013) Proximity: a real-time, location aware social web application built with Node.js and AngularJS. Mobile Web and Information Systems. Springer, Berlin Heidelberg, pp 292–295

  41. Lundar J, Grnli TM, Ghinea G (2013) Performance evaluation of a modern web architecture. Int J Inform Technol Web Eng (IJITWE) 8(1):36–50

    Article  Google Scholar 

  42. Tom H-C, Mike W (2012) “Node: up and running”, O’Reilly Media, ISBN: 978-1-4493-9858-3

  43. http://geohash.org/. Accessed 22 Mar 2014

  44. Redis documentation, http://redis.io/documentation. Accessed 22 Mar 2014

  45. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise. Accessed 22 Mar 2014

  46. http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts. Accessed 22 Mar 2014

  47. Mark Ethan Trostler (2013) “Testable JavaScript”, O’Reilly Media, ISBN: 978-1-4493-2339-4

  48. ImageMagick, http://www.imagemagick.org. Accessed 22 Mar 2014

  49. GraphicsMagick, http://www.graphicsmagick.org. Accessed 22 Mar 2014

  50. Dabek F et al (2002) Event-driven programming for robust software. Proceedings of the 10th workshop on ACM SIGOPS European workshop. ACM

  51. http://angularjs.org/. Accessed 22 Mar 2014

  52. Stone P (2013) Pixel perfect timing attacks with HTML5. Context Information Security (White Paper)

  53. /proc/sys/net/ipv4/* Variables, http://www.cyberciti.biz/files/linux-kernel/Documentation/networking/ip-sysctl.txt. Accessed 22 Mar 2014

  54. IBM, International Technical Support Organisation Linux Performance and Tuning Guidelines (2007). http://www.redbooks.ibm.com/redpapers/pdfs/redp4285. Accessed 22 Mar 2014

  55. Pache Multi-Processing Modules, http://httpd.apache.org/docs/2.2/mpm.html. Accessed 22 Mar 2014

  56. Temme S (2007) Apache Performance Tuning Part One: Scaling Up

  57. Apache MPM prefork. http://httpd.apache.org/docs/2.2/mod/prefork.html. Accessed 22 Mar 2014

  58. Apache documentation. http://httpd.apache.org/docs/2.2/mpm.html. Accessed 22 Mar 2014

  59. http://wiki.nginx.org/Main. Accessed 22 Mar 2014

  60. http://php-fpm.org/. Accessed 22 Mar 2014

  61. http://www.fastcgi.com/. Accessed 22 Mar 2014

  62. https://code.google.com/p/v8/. Accessed 22 Mar 2014

  63. http://nodejs.org/. Accessed 22 Mar 2014

  64. http://nodejs.org/api/cluster.html. Accessed 22 Mar 2014

  65. http://redmine.lighttpd.net/projects/weighttp/wiki. Accessed 22 Mar 2014

  66. Johnson T, Seeling P (2013) Desktop and mobile web page comparison: characteristics, trends, and implications. arXiv preprint arXiv:1309.1792. Accessed 22 Mar 2014

  67. Schneider F (2010) Analysis of new trends in the web from a network perspective. Ph.D thesis, TU Berlin

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Nikolaos D. Tselikas.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Chaniotis, I.K., Kyriakou, KI.D. & Tselikas, N.D. Is Node.js a viable option for building modern web applications? A performance evaluation study. Computing 97, 1023–1044 (2015). https://doi.org/10.1007/s00607-014-0394-9

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00607-014-0394-9

Keywords

Mathematics Subject Classification

Navigation