本文主要讲解“Node.js的相关问题有哪些”,感兴趣的朋友不妨看看。本文介绍的方法简单、快速、实用。让边肖带你学习“Node.js有哪些相关问题”!
1. Node诞生于哪一年?
Node诞生于2009年。
2009年3月,《节点》的作者在博客上宣布,他将创建一个基于V8的轻量级Web服务器,并提供一个库。
同年5月,原版本在GitHub发布。
2011年7月,windows版本在微软的支持下发布。
2. 是谁创造出来的?
瑞安达尔是节点的创造者,被称为节点之父。
然而,2012年1月,瑞安达尔将自己的脑袋交给了《NPM》的作者艾萨克施吕特,让他接受《节点》的发行和bug修复。
3. 为什么叫Node?
Node有很多昵称,比如Nodejs、NodeJS、Node.js等。那为什么是Node?
起初,Ryan Dahl称他的项目为web.js,这是一个web服务器,但是这个项目的开发超出了他最初简单开发web服务器的想法。它已经成为构建网络应用的基本框架,在此基础上可以构建更多的东西,比如服务器、客户端、命令行工具等等。Node已经发展成为一个单线程、单进程的系统,被迫不共享任何资源,包括一个适合网络的库,为构建大规模分布式应用提供基础设施,其目标也称为快速、可扩展的网络应用服务。很简单。它通过通信协议组织许多节点。通过扩展构建大规模网络应用非常容易。每一个Node进程都构成了这个网络应用中的一个节点,这就是节点的意思。
4. 为什么是JavaScript成为了Node的实现语言?
选择JavaScript作为Node的实现语言主要有三个原因:
高性能
符合事件驱动
没有历史包袱
Ryan Dahl曾经评价过C,Lua,Haskell,Ruby等。作为替代实现,但是C有很高的开发门槛,Lua有很多历史包袱,Haskell觉得自己还是玩不了,Ruby的虚拟机性能也不是很好。总的来说,节点的实现语言选择了JavaScript。
你可能和我一样认为,JavaScript中没有历史包袱吗?是的,JavaScript在后端从来没有市场,历史包袱等于零。
5. Node有哪些主要特点?
主要特点如下:
异步I/O
事件和回调函数
单线程
Node保留了前端浏览器JavaScript中那些熟悉的界面,而没有重写语言本身的任何特性。
6. Node有哪些应用场景?
节点的应用场景主要包括:
CPU密集型
CPU密集型业务
分布式应用
利用事件循环的处理能力,Node不需要为每个请求启动一个线程,从而更有效地组织更多的硬件资源;对于专注于CPU栈操作的商家来说,Node的性能也足够高效,主要是因为V8的深度性能优化。
7. CPU密集型应用会给Node带来什么挑战,如何解决?
CPU密集型应用会给Node带来的主要挑战是:因为JavaScript单线程,如果计算时间长(比如大循环),CPU时间片不会释放,后续I/O也不会发起。
总体方案:
适当调整和分解大规模计算任务。
如果上述方案无法解决,Node有两种方法可以充分利用CPU。
节点可以写C/C扩展。
在子进程的方式上,将Node进程的一部分作为常驻服务进程进行计算,然后利用进程间的消息传递结果,将计算与I/O分离。
至此,相信大家对“Node.js的相关问题是什么”有了更深的理解,所以还是做一些实际的工作吧!这是网站。更多相关内容,可以去相关渠道查询,关注我们,继续学习!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/154118.html