首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Nodejs】375- 如何加快 Node.js 应用的启动速度

我们平时在开发部署 Node.js 应用的过程中,对于应用进程启动的耗时很少有人会关注,大多数的应用 5 分钟左右就可以启动完成,这个过程中会涉及到和集团很多系统的交互,这个耗时看起来也没有什么问题。...所有提供 Node.js FaaS 能力的平台,都在绞尽脑汁的把冷/热启动的时间缩短,这里面除了在流程、资源分配等底层基建的优化外,作为其中提供服务的关键一环 —— Node.js 函数,本身也应该参与到这场时间攻坚战中...如何更快 从上面得知,主要影响我们启动速度的是两个点,文件 I/O 和代码编译。我们分别来看如何优化。...最后,Node.js 12 版本对内部的模块默认做了 code cache,对 Node.js 默认进程的启动速度提升比较明显,在服务器环境中,可以控制在 120ms 左右,也可以考虑引用尝试下。...Node.js 12.6 的版本,也开启了 Node.js 进程本身的在 user code 加载前的 Snapshot 能力,但目前看起来启动速度提升不是很理想,在 10% ~ 15% 左右。

2.5K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    通过代码缓存加速 Node.js启动

    前言:之前的文章介绍了通过快照的方式加速 Node.js启动,除了快照,V8 还提供了另一种技术加速代码的执行,那就是代码缓存。...本文介绍在 Node.js如何利用代码缓存技术加速 Node.js启动。 首先看一下 Node.js 的编译配置。...Node.js 的可执行文件里,这样在 Node.js 启动时就不需要从硬盘里读取对应的文件,否则无论是启动还是运行时动态加载原生 JS 模块,都需要更多的耗时,因为内存的速度远快于硬盘。...当开启代码缓存时,我的电脑上 Node.js 启动时间大概为 40 毫秒,当去掉代码缓存的逻辑重新编译后,Node.js启动时间大概是 60 毫秒,速度有了很大的提升。...总结:Node.js 在编译时首先把原生 JS 模块的代码写入到文件并,接着执行 mkcodecache.cc 把原生 JS 模块进行编译和获取对应的代码缓存,然后写到文件中,同时编译进 Node.js

    2.1K30

    通过快照加速 Node.js启动

    前言:随着 Node.js 的越来越强大,代码量也变得越来越多,不可避免地拖慢了 Node.js启动速度,针对这个问题,Node.js 社区通过 V8 的 snapshot 技术对 Node.js...通过快照加速启动是一个非常复杂的过程,这需要对 V8 有深入的理解。本文介绍一下如何Node.js 中使用快照加速 Node.js启动。...Node.js 默认开启了快照功能。编译后会生成一个 node_snapshot.cc 文件。里面定义了几个方法和保存了快照的数据,在 Node.js 启动的时候会用到。...总结:可以看到通过快照极大加速了 Node.js启动过程,而快照技术的思想很简单,就是保存副本避免每次重新创建一样的数据,但是实现上是非常复杂的。...无论如何,感谢 Node.js 社区以及为此付出的同学。

    1.4K20

    淘宝 | 如何加快 Node.js 应用的启动速度,实现分钟到毫秒的转化

    所有提供 Node.js FaaS 能力的平台,都在绞尽脑汁的把冷/热启动的时间缩短,这里面除了在流程、资源分配等底层基建的优化外,作为其中提供服务的关键一环 —— Node.js 函数,本身也应该参与到这场时间攻坚战中...这 100ms 包括了 Node.js 运行时、函数运行时、函数框架启动到能够响应请求的时间。巧的是,人类反应速度的极限目前科学界公认为 100ms。...“ 如何 更快 ” 从上面得知,主要影响我们启动速度的是两个点,文件 I/O 和代码编译。我们分别来看如何优化。...最后,Node.js 12 版本对内部的模块默认做了 code cache,对 Node.js 默认进程的启动速度提升比较明显,在服务器环境中,可以控制在 120ms 左右,也可以考虑引用尝试下。...Node.js 12.6 的版本,也开启了 Node.js 进程本身的在 user code 加载前的 Snapshot 能力,但目前看起来启动速度提升不是很理想,在 10% ~ 15% 左右。

    1.5K30

    新技能:通过代码缓存加速 Node.js启动

    前言:之前的文章介绍了通过快照的方式加速 Node.js启动,除了快照,V8 还提供了另一种技术加速代码的执行,那就是代码缓存。...本文介绍在 Node.js如何利用代码缓存技术加速 Node.js启动。首先看一下 Node.js 的编译配置。'...新技能:通过代码缓存加速 Node.js启动新技能:通过代码缓存加速 Node.js启动里面定义了一个函数,这个函数里面往 source_ 字段里不断追加一系列的内容,其中 key 是 Node.js...的可执行文件里,这样在 Node.js 启动时就不需要从硬盘里读取对应的文件,否则无论是启动还是运行时动态加载原生 JS 模块,都需要更多的耗时,因为内存的速度远快于硬盘。...当开启代码缓存时,我的电脑上 Node.js 启动时间大概为 40 毫秒,当去掉代码缓存的逻辑重新编译后,Node.js启动时间大概是 60 毫秒,速度有了很大的提升。

    98850

    新技能:通过代码缓存加速 Node.js启动

    前言:通过快照的方式加速 Node.js启动,除了快照,V8 还提供了另一种技术加速代码的执行,那就是代码缓存。...本文介绍在 Node.js如何利用代码缓存技术加速 Node.js启动。首先看一下 Node.js 的编译配置。...,并且编译进 Node.js 的可执行文件里,这样在 Node.js 启动时就不需要从硬盘里读取对应的文件,否则无论是启动还是运行时动态加载原生 JS 模块,都需要更多的耗时,因为内存的速度远快于硬盘。...当开启代码缓存时,我的电脑上 Node.js 启动时间大概为 40 毫秒,当去掉代码缓存的逻辑重新编译后,Node.js启动时间大概是 60 毫秒,速度有了很大的提升。...总结:Node.js 在编译时首先把原生 JS 模块的代码写入到文件并,接着执行 mkcodecache.cc 把原生 JS 模块进行编译和获取对应的代码缓存,然后写到文件中,同时编译进 Node.js

    62100

    如何部署 Node.js 开发环境

    Node.js是一个用于通用编程的JavaScript平台,允许用户快速构建网络应用程序。通过在前端和后端利用JavaScript,Node.js使开发更加一致和集成。...在本指南中,我们将向您展示如何在Ubuntu 18.04服务器上开始使用Node.js。如果您还没有腾讯云的服务器,可以先点击这里进行免费套餐的试用。...在大多数情况下,您还需要安装npm,Node.js的包管理器。您可以通过输入以下命令来安装: sudo apt install npm 这将允许您安装与Node.js一起使用的模块和包。...这将有比官方Ubuntu存储库更多的Node.js最新版本,并允许您在Node.js v6.x(支持到2019年4月),Node.js v8.x(当前版本之间进行选择 LTS(长期支持版)版本,支持到2019...这意味着您可以安装多个自包含的Node.js版本,而不会影响整个系统。 通过控制您的环境,nvm您可以访问最新版本的Node.js并保留和管理以前的版本。

    3.6K67

    如何安装和配置 Node.js

    本文将详细介绍如何安装和配置 Node.js,并提供一些常见问题的解答。...如何卸载 Node.js?如果需要卸载 Node.js,可以按照以下步骤进行操作:Windows:在“控制面板”中选择“卸载程序”,找到安装的 Node.js,点击“卸载”。...macOS:使用以下命令来卸载 Node.js:sudo rm -rf $(which node)sudo rm -rf $(which npm)2. 如何解决权限问题?...如何查看全局安装的包?你可以使用以下命令查看全局安装的包:npm list -g --depth 0该命令将显示全局安装的包及其版本号。4. 如何升级全局安装的包?...结论通过本文,你已经了解了如何安装和配置 Node.js。你学习了如何验证安装、配置环境变量、安装包管理器,以及如何配置镜像源、更新 Node.js 和 npm 等常见操作。

    1.6K20

    如何计算 Node.js GC 负载

    Node.js 中,我们关注的比较的是 CPU 负载,但是在有 GC 的语言中,GC 负载也是需要关注的一个指标,因为 GC 过高会影响我们应用的性能。本文介绍关于 GC 负载的一些内容。...如何获取 GC 耗时 操作系统本身会计算每隔线程的 CPU 耗时,所以我们可以通过系统获取这个数据,然后计算出线程的 CPU 负载。...但是 GC 不一样,因为 GC 是应用层的一个概念,操作系统是不会感知的,在 Node.js 里,具体来说,是在 V8 里,也没有 API 可以直接获取 GC 的耗时,但是 V8 提供了一些 GC 的钩子函数...如何计算 GC 负载 负载 = 过去一段时间内的消耗 / 过去的一段时间值,看看如何计算 GC 负载。...使用 下面看看如何使用。

    14520

    如何关闭nginx服务_如何启动nginx

    Nginx服务器启停命令 Nginx安装完成后,接下来我们要学习的是如何启动、重启和停止Nginx的服务。...Nginx默认采用的是多进程的方式来工作的,当将Nginx启动后,我们通过ps -ef |grep nginx命令可以查看到如下内容: 从上图中可以看到,Nginx后台进程中包含一个master...worker进程,master进程主要用来管理worker进程,包含接收外界的信息,并将接收到的信号发送给各个worker进程,监控worker进程的状态,当worker进程出现异常退出后,会自动重新启动新的...logs/nginx.pid` 3.发送HUP信号给master进程,master进程会把控制旧的work进程不再接收新的请求,等处理完请求后将旧的work进程关闭掉,然后根据nginx的配置文件重新启动新的...默认为: /usr/local/nginx/) -c:filename,指定Nginx的配置文件路径,(默认为: conf/nginx.conf) -g:用来补充Nginx配置文件,向Nginx服务指定启动时应用全局的配置

    2.6K20

    如何启动HiveServer2

    下面我们具体看一下如何配置 HiveServer2。 1. Thrift服务配置 假设我们已经成功安装了 Hive,如果没有安装,可以参阅 Hive 安装与配置。...在启动 HiveServer2 之前,我们需要先进行一些配置: hive.server2.transport.mode binary... 默认情况下,HiveServer2 启动使用的是默认配置。这些配置主要是服务启动的 Host 和端口号以及客户端和后台操作运行的线程数。...启动 启动 HiveServer2 非常简单,我们需要做的只是运行如下命令即可: $HIVE_HOME/bin/hiveserver2 & 或者 $HIVE_HOME/bin/hive --service...hiveserver2 & 检查 HiveServer2 是否启动成功的最快捷的办法就是使用 netstat 命令查看 10000 端口是否打开并监听连接: netstat -nl | grep 10000

    8.5K22
    领券