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

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

我们平时在开发部署 Node.js 应用的过程中,对于应用进程启动的耗时很少有人会关注,大多数的应用 5 分钟左右就可以启动完成,这个过程中会涉及到和集团很多系统的交互,这个耗时看起来也没有什么问题。...Serverless 的优势在于弹性、高效、经济,如果我们的 Node.js FaaS 还像应用一样,一次部署耗时在分钟级,无法快速、有效地响应请求,甚至在脉冲请求时引发资源雪崩,那么一切的优势都将变成灾难...所有提供 Node.js FaaS 能力的平台,都在绞尽脑汁的把冷/热启动的时间缩短,这里面除了在流程、资源分配等底层基建的优化外,作为其中提供服务的关键一环 —— Node.js 函数,本身也应该参与到这场时间攻坚战中...最后,Node.js 12 版本对内部的模块默认做了 code cache,对 Node.js 默认进程的启动速度提升比较明显,在服务器环境中,可以控制在 120ms 左右,也可以考虑引用尝试下。...Node.js 12.6 的版本,也开启了 Node.js 进程本身的在 user code 加载前的 Snapshot 能力,但目前看起来启动速度提升不是很理想,在 10% ~ 15% 左右。

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

    【Android 性能优化】应用启动优化 ( 启动白屏问题 | 应用启动时间测量 | 冷启动 | 热启动 | 应用启动时间计算源码分析 )

    文章目录 一、 APP 启动白屏 / 黑屏 二、 APP 启动速度测量 1. 通过 Logcat 日志查看应用启动时间 2....解决方案 : Android 应用启动时很多大型应用都会有一个几秒的倒计时 , 并配上动态广告 , 这并不是开发者想要放上去的 , 而是为了避免上述启动白屏导致用户体很差 ; 3 ....通过 Logcat 日志查看应用启动时间 通过 Logcat 日志查看应用启动时间 : 该方法只适用于 Android 4.4 版本之后的手机 ; ① 使用工具 : 使用 Android Studio...冷启动 : 应用后台没有该应用 , 该应用所有资源都要重新加载 , 分配新的进程 , 初始化 Application , 初始化 Activity 界面 ; 下图中的 LanuchState 中显示了启动的模式...热启动 : 按下 Home 键 , 应用进入后台 , 再次启动 , 应用由后台转到前台 , 这种启动称为热启动 ; 下图中的 LanuchState 中显示了启动的模式 , 下图中显示的是热启动 ;

    5.2K20

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

    应用的过程中,对于应用进程启动的耗时很少有人会关注,大多数的应用 5 分钟左右就可以启动完成,这个过程中会涉及到和集团很多系统的交互,这个耗时看起来也没有什么问题。...Serverless 的优势在于弹性、高效、经济,如果我们的 Node.js FaaS 还像应用一样,一次部署耗时在分钟级,无法快速、有效地响应请求,甚至在脉冲请求时引发资源雪崩,那么一切的优势都将变成灾难...所有提供 Node.js FaaS 能力的平台,都在绞尽脑汁的把冷/热启动的时间缩短,这里面除了在流程、资源分配等底层基建的优化外,作为其中提供服务的关键一环 —— Node.js 函数,本身也应该参与到这场时间攻坚战中...最后,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 启动时就不需要从硬盘里读取对应的文件,否则无论是启动还是运行时动态加载原生 JS 模块,都需要更多的耗时,因为内存的速度远快于硬盘。...当开启代码缓存时,我的电脑上 Node.js 启动时间大概为 40 毫秒,当去掉代码缓存的逻辑重新编译后,Node.js启动时间大概是 60 毫秒,速度有了很大的提升。...总结:Node.js 在编译时首先把原生 JS 模块的代码写入到文件并,接着执行 mkcodecache.cc 把原生 JS 模块进行编译和获取对应的代码缓存,然后写到文件中,同时编译进 Node.js

    2.1K30

    Node.js实现桌面应用

    说到桌面应用程序,可能更多人会想到使用QT或者JAVA FX去实现,Node.js能实现桌面程序么?可能很多人对这个问题的答案抱着怀疑的态度。...实际上Node.js现在生态圈越来越完善,所以用Node.js实际上可以非常轻松的架构一个桌面应用。今天我们来讲讲Node.js是如何构建一个桌面应用。 首先我们需要创建一个Node.js项目。 ?...接下来我们需要将我们的应用打包生成桌面应用启动文件,打包就需要使用我们刚才一开始安装的依赖:electron-packager。...我们执行这个文件就可以运行我们的桌面应用了。 ? 最后我们来谈谈,使用Node.js结合electron模式开发桌面应用有什么优缺点呢?...1.启动慢,因为打包整个浏览器内核会一起进行打包。 2.除了主进程,你可能还需要一些进程来辅助工作。每新开一个进程,就会产生额外的内存开销,太过于依赖cpu。

    8.2K40

    通过快照加速 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启动过程,而快照技术的思想很简单,就是保存副本避免每次重新创建一样的数据,但是实现上是非常复杂的。

    1.4K20

    测试应用启动性能

    因此,我真正想要的是某种从命令行启动应用的方式。有了它,我就可以反复运行该命令来执行相同的操作,从而避免手动启动应用带来的可变性 (和乏味)。..."冷启动" 是指您的应用在安装后的第一次启动、重启,或者不在后台时的启动。 另一方面,"热启动" 是指您的应用已经启动且正在后台运行 (但被暂停了) 时的启动。 这两种情况都值得去测试和理解。...当您启动应用后,应用会处在前台,而 kill 不会终止处在前台的应用。...我喜欢循环,让我们来循环它 现在,您已经有了可以启动应用、输出启动持续时间数据,以及退出应用并使其可以再次启动的一系列命令。...在执行此操作时,为了避免应用被终止而产生副作用 (例如,当应用程序被终止时,系统会将启动器拉到前台),您可能会想要在终止应用后延缓下一次的启动

    37810

    【Android 启动过程】Android 应用启动流程 | Activity 启动流程

    Launcher 应用 ; Launcher 应用就是界面中显示各个应用图标的应用 , 就是 Android 的桌面应用 ; Framework 层有 2 个最重要的进程 , Zygote 进程...和 SystemServer 进程 ; Zygote 进程通过 fork() 创建应用进程 ; 整理成如下框图 : 二、Activity 启动流程 ---- Android 应用启动方式有 2 种..., 分为冷启动和热启动 ; 冷启动 : 后台没有应用进程 , 需要先创建进程 , 然后启动 Activity ; 热启动 : 后台有应用进程 , 不创建进程 , 直接启动 Activity ; Activity...Activity B ; 阶段 3 : 在应用 ActivityThread 主线程中 , 启动 Activity B 页面 ; 简要流程 : Activity A -> ActivityManagerService...-> ActivityThread -> Activity B ; 在 Launcher 应用启动 Activity 示例 : 在 Launcher 应用中 , 调用 startActivity()

    4K10

    Node.js 应用最佳实践:日志

    当你启动 Node.js 服务器时,如果数据库由于某些问题而没有运行,或服务器端口已经被占用时,如果没有日志,你将永远不知道服务器失败的原因。...WARN:这些日志是警告并且不阻止应用程序继续运行,这些日志会在出现问题并使用变通方法时发出警报。例如错误的用户输入、重试等。管理员将来应该修复这些警告。...在 Node.Js 中,控制台的实现方式与浏览器不同,控制台模块在使用 console.log 时会在 stdout 中打印消息,如果使用 console.error 它将打印到 stderr。...动态更改日志级别:我们将在生产环境程序中启用警告和错误,并可以根据需要将日志级别更改为调试并返回错误,而无需重新启动程序。Winston 具有这种开箱即用的功能。...当应用程序出现问题时,日志就是救星。如果你当前还没有很好的使用日志,请实施日志记录实践并将日志添加到代码审查核对表中。

    1.2K20

    【Android 插件化】VirtualApp 源码分析 ( 启动应用源码分析 | HomePresenterImpl 启动应用方法 | VirtualCore 启动插件应用最终方法 )

    文章目录 一、启动应用源码分析 1、HomeActivity 启动应用点击方法 2、HomePresenterImpl 启动应用方法 3、VirtualCore 启动插件应用最终方法 一、启动应用源码分析...---- 1、HomeActivity 启动应用点击方法 在 io.virtualapp.home.HomeActivity 页面中 , 点击列表中的应用后 , 可以启动应用 ; 直接到 io.virtualapp.home.adapters.LaunchpadAdapter...mAppClickListener.onAppClick(position, data); } }); } } 2、HomePresenterImpl 启动应用方法...调用 LaunchpadAdapter.setAppClickListener 方法注入应用启动点击事件 , public class HomeActivity extends VActivity implements...最终启动应用的方法是 io.virtualapp.home.LoadingActivity 类中的 public static void launch(Context context, String

    65010

    【Android 性能优化】应用启动优化 ( 安卓应用启动分析 | Launcher 应用启用普通安卓应用 | 应用进程分析 )

    tag) 方法分析 三、 Android 应用进程分析 上一篇博客 【Android 性能优化】应用启动优化 ( 安卓应用启动分析 | Launcher 应用简介 | Launcher 应用源码简介...应用启动普通 Android 应用的源码 ; 一、 Launcher 应用 startActivitySafely 方法分析 ---- 在 Launcher 应用中 , 点击快捷方式图标 , 调用...Launcher 中的启动方法 : Launcher 应用启动 Android 应用 , 调用 startActivity(View v, Intent intent, Object tag) 方法..., 在该方法中 , 启动 Android 应用启动 Activity ; 3 ....从进程角度分析冷启动与热启动 : ① 冷启动 : 运行程序后 , 应用启动 , 会为该应用启动一个新进程 ; 这次启动是冷启动 ; ② 退出应用 进程保留 : 点击回退键 , 应用退出 , 此时该进程进入后台

    98710

    新技能:通过代码缓存加速 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 毫秒,速度有了很大的提升。

    98750

    OpenHarmony应用启动过程

    本文基于 OpenHarmony 源码梳理应用启动过程,介绍 appspawn/ability_runtime/ace_engine/ets_runtime 等重要模块的初始化流程,以及它们之间的相互关系...不同形态的 hap 应用在具体细节上会有一些差异,但整体的流程上是一致的。本文基于 OpenHarmoney 3.2 标准系统 FA 模式的 ets 应用进行阐述。...应用启动整体流程查看各个进程的父子关系可知,OpenHarmony 的系统应用和用户应用进程,都是由应用孵化器(appspawn)拉起的。...应用启动的整理流程如下图所示:说明:应用启动时,appspawn 进程会 fork 出一个应用子进程,创建 AceAbility 实现类和 AceContainer。...启动流程详解①appspawn 创建应用进程:应用日志:08-05 17:58:11.955 255-255/appspawn I C02c11/APPSPAWN: [appspawn_service.c

    17320
    领券