`

hello node

 
阅读更多

今后可能一段时间不会用JAVA了,改用node,所以开始认真研究一下

node是什么

我目前的认识,node包括一个javascript执行引擎(对v8的封装),同时也是一个web server,还有很多的第三方库,简化app开发

除此以外,node底层有些依赖的库是用C语言写的,比如libev,libeio等,封装了操作系统的IO操作,异步操作等,应用开发者一般不需要关注

node的优势

相对于已经比较熟悉的java ee平台,为什么新产品要选型陌生的node呢?我觉得主要有以下几个好处

1、前端代码越来越多地用到了javascript,在server端也用javascript写代码,有利于server端和client端的代码共享

2、node开发很简单

3、node是事件驱动的单线程模型,性能更优

node的劣势

1、相对于java ee平台,node还相当年轻,所以成熟度还差点(第三方库、最佳实践、资源、社区等)

2、要熟悉node的事件驱动模型,需要转换一下思路

node为什么有性能优势

node有2个关键词:事件驱动、单线程

node的javascript引擎是单线程执行的,只不停地执行不耗时的小函数,遇到耗时操作(数据库访问、网络连接、文件IO等)时,就会转交给底层的库去异步处理,等待执行完毕以后,再通过回调函数回到事件队列里

对比一下tomcat这种每个request一个worker thread的模式。node始终只有一个thread,因此就没有在线程中切换CPU的额外开销,也使用更少的RAM,我想这是node性能更好的主要原因。恰好这是比较适合web app的场景的,如果计算场景是CPU密集型,那么node就不会有性能优势

分享到:
评论

相关推荐

    hellonode

    "hellonode"项目简介与JavaScript知识详解 “hellonode”是一个可能的入门级项目,旨在引导初学者进入Node.js的世界。Node.js是基于Chrome V8引擎的JavaScript运行环境,它让JavaScript开发者可以在服务器端编写...

    码农· Hello Node(第18期)1

    Node 生态系统:成长 ·∙ 协作 ·∙ 分享异步的本质以及其他Node 编码规范朴灵:打破限制,从前端到全栈算法的乐趣:从乐趣出发阐

    HelloNode:学习git,git hub和node

    【HelloNode:学习git,git hub和node】 在IT行业中,掌握版本控制工具Git、代码托管平台GitHub以及JavaScript运行环境Node.js是至关重要的技能。这个名为"HelloNode"的项目,旨在帮助初学者理解并实践这三个核心...

    Docker-HelloNode:Docker 容器中的 Node.js 变得简单

    Docker-HelloNode 这是博客文章的来源

    HelloNode:示例Node.js存储库

    Node.js Hello World 此示例演示了一个用于的小型Hello World node.js应用。贡献该项目采用了。 有关更多信息,请参见或与联系,并提出其他任何问题或意见。

    hellonode:Node中的Hello World HTTP服务器,带有Dockerfile和Jenkinsfile

    你好节点 这是用Node编写的非常基本的Hello World应用程序。 它包括一个Dockerfile与应用程序建立一个码头工人的形象,和Jenkinsfile定义了构建流水线它。

    helloNode

    TDD JavaScript,带有Node和Jest 安装:“ npm install” 运行:“ npm运行测试” 在4个测试套件中,共有29个测试。目前,有3个测试是演示测试,向您展示如何进行一些测试设置。 要仅运行一个测试,请使用“ npm run...

    jMonkeyEngine 入门学习

    Hello Node 教程旨在指导新手开发者了解 jMonkeyEngine 的场景图节点(Node)概念。Node 是 jMonkeyEngine 场景图的基本组成部分,用于描述 3D 场景中的对象和关系。 在这个教程中,开发者将学习如何创建和管理 ...

    nodejs调用C++代码

    在给定的压缩包文件中,`nodejs12.2.rar`可能是包含了以上步骤所需的源码和配置文件的压缩包,而`hellonode`可能是一个简单的示例,演示了如何从Node.js调用一个简单的C++函数,比如打印"Hello, Node!"。 总的来说...

    JME学习文档—中文版.pdf

    - **1.2 Hello Node**:节点是JMonkeyEngine3中的基本构建块,用于组合和组织3D对象。这部分将讲解如何创建和管理节点,以及它们如何在场景图中相互关联。 - **1.3 Hello Assets**:资产管理是游戏开发的关键,...

    linux高可用集群(centos7)

    echo "Hello node2" > /var/www/html/index.html ``` 4. **开启Apache Status URL**: 在Apache配置文件中启用Server Status模块: ```bash sed -i 's/^#LoadModule status_module/#LoadModule status_module/' ...

    node-unslug:在Node.js实施中取消处理。 将子弹“ hello-world”更改为“ Hello World”

    节点松散在Node.js实施中取消处理。 将子弹“ hello-world”更改为“ Hello World”用法var unslug = require('./');console.log(unslug('hello-world'));// outputs: Hello Worldconsole.log(unslug('a-simple-demo...

    Node.js-excel4node一个能够轻松创建Excel文件的Node模块

    **Node.js-excel4node** 是一个强大的Node.js模块,专为开发者设计,方便他们在JavaScript环境中轻松地创建和处理Excel文件。这个库以其全面的功能和灵活性而受到广泛的欢迎,尤其适用于那些需要生成复杂Excel报告的...

    Mac/Windows下如何安装Node.js

    node hello_node.js ``` 如果一切正常,你应该会看到"Server running at http://127.0.0.1:8124/"的提示。接着在浏览器中访问`http://127.0.0.1:8124/`,你应该能看到"Hello Node.js"的欢迎消息。 以上就是Mac、...

    node.js入门

    然后在命令行中运行`node hello.js`,你将看到输出的"Hello, World!"。 3. **Node.js的核心模块** Node.js内建了许多核心模块,如`fs`(文件系统)、`http`(HTTP服务器)、`path`(路径处理)等。例如,使用`fs`...

    hello world hello world

    4. **Web应用开发**:如果“BookShop”是一个Web应用,那么可能涉及到HTML、CSS和JavaScript的前端开发,以及后端语言(如PHP、Node.js、Ruby on Rails)和框架(如Django、Express.js)的选择和使用。 5. **数据库...

Global site tag (gtag.js) - Google Analytics