Node.js与PHP:哪个提供更好的性能?
Node.js和PHP是用于开发网站内容和功能的两种最流行的服务器端平台。今天,我将向您介绍Node.js与PHP性能的详细比较,以及其他一些需要考虑的功能。Node.js是一个JavaScript运行时环境,最初于2009年作为开源平台引入。Node.js的目的是在Web服务器上运行Javascript代码,而不是强迫Javascript代码在试图访问Web内容的访问者的浏览器中运行。由于内置库,Node.js不需要额外的服务器来解释和运行Javascript代码。
http://i1.go2yd.com/image.php?url=0MsMYWzF7o&zhiwu55.jpg
什么是PHP?
PHP代表“PHP:超文本处理器”,它本身就是一种脚本语言。PHP代码可以嵌入HTML中,也可以由Apache和Nginx Web服务器引擎标准的解释器处理。正因为如此,以及它长达25年的历史,PHP被用于超过80%的Web服务器。
Node.js与PHP:他们如何比较性能?
Node.js和PHP在运行方式上存在根本差异。这意味着他们在加载网站内容方面的表现会有所不同。我将向您介绍一些基本的性能差异,并强调三个基准速度测试,以比较两个平台。
代码编译
在编译代码时,Node.js比PHP略有优势。那是因为PHP运行了一个解释的编译策略,这意味着它依赖于一个单独的解释器来编译和运行一段代码。在大多数Web服务器上,PHP使用Zend运行时环境进行操作和解析。
相比之下,Node.js使用Just-in-Time编译自行运行。这意味着Node.js提供了在访问者浏览器上编译和运行Javascript代码块所需的所有部分, 而无需任何外部解释来减慢速度。
也就是说,HHVM虚拟机可以通过专门为PHP提供运行时环境来显着提高PHP的编译速度。与Node.js一样,HHVM使用Just-in-Time编译而不是通常用于运行PHP代码的较慢的解释编译。
多任务处理
Node.js相对于PHP的一个主要优点是处理对Web服务器的多个同时请求。Node.js在单个CPU线程上使用非阻塞事件循环,这允许它在客户端请求数量增加时运行Javascript代码而不会耗尽计算资源。
另一方面,PHP使用阻塞进程,当向服务器发出多个客户端请求时,需要多个CPU线程。结果,当对服务器进行许多同时请求时,整个服务器在处理PHP代码的解释时可能变得CPU受限。当发生这种情况时,完成所有请求的时间可能会急剧增加。
当运行具有性能增强的PHP扩展的Apache或Nginx Web服务器时,PHP的多任务功能有一些赎回特性。但是,这些仅限于加快速度和重新路由任务以更好地分配可用的计算能力。最终,Apache和Nginx仍然没有从根本上提高PHP处理同步任务的能力。
Node.js非常优于PHP
当谈到Node.js与PHP的性能时,Node.js的优势几乎没有问题。在我的所有三个基准测试中,Node.js都优于PHP,即使在高性能HHVM运行时环境中测试PHP也是如此。
这意味着,当在Web服务器上执行代码并向访问者提供内容时,Node.js几乎每次都会更快。
更重要的是,当向Web服务器发出多个同时请求时,Node.js与PHP之间的区别特别明显。对于看到大量Web流量的共享托管服务器或专用服务器,多任务处理性能的差异可能是有效提供内容与崩溃的服务器之间的差异。
也就是说,在Node.js和PHP之间进行选择时,需要考虑性能以外的因素。PHP仍然被广泛使用,并且拥有更加成熟的开发人员社区,所以它不太可能很快消失。也就是说,随着越来越多的开发人员转而利用其高性能,Node.js可能会变得更加重要。
页:
[1]