写点什么

唯快不破——高效定位线上 Node.js 应用内存泄漏

  • 2019-08-24
  • 本文字数:1162 字

    阅读完需:约 4 分钟

唯快不破——高效定位线上Node.js应用内存泄漏

QCon北京2018大会上,黄一君讲师做了《唯快不破——高效定位线上 Node.js 应用内存泄漏》主题演讲,主要内容如下。


演讲简介


线上使用 Node.js 技术作为中间层,进行前后端彻底的分离的方案现在越来越广泛地应用到企业开发中。这也是在容器化微服务架构趋势下“服务端设计的接口究竟是面向 UI 还是只是通用服务?”这个命题中许多企业选择的答案。


而在这种选择下,开发者普遍遇到的问题是:一方面工程师们享受 Node.js 带来的更高自由度的前后端分离方案,更好的渲染性能,更便捷的接口组装和数据处理;另一方面 Node.js 应用对于绝大多数开发者来说却处于一个黑盒状态,导致应用稳定性没有保障。结合为客户排查一些线上故障和之前我自己的编写业务框架和业务开发的工作经历,内存泄漏的问题是使用 Node.js 进行服务端开发时经常遇到的一颗炸弹。


武侠小说里常常写到:天下武功,唯快不破。那么当我们在业务上线后通过一些通用的监控基础设施发现线上的 Node 服务存在内存泄漏时,也肯定是希望能最快地定位并解决问题,以对用户的影响降到最低。所以本次分享将从 Node.js 内嵌的 v8 引擎提供的垃圾回收原理,以及遇到的一些真实且典型的内存泄漏代码案例排查分析总结,来帮助大家应对线上遇到的内存泄漏,更理想的是能帮助大家在开发阶段避免写出内存泄漏的代码。

主要内容

  1. 新生代、老生代的 gc 原理,增量式标记;

  2. Heapsnapshot 是什么,怎么获取,以及 Heapsnapshot 的内容详解;

  3. EventHandle——经常被忽略的泄漏;

  4. 网红 Vue/React——SSR 时记得注意这些;

  5. co 递归、logger 对象实例无限制和 graphql 使用不当引发的典型内存泄漏案例深度分析;

  6. 一些总结。


讲师介绍


黄一君


阿里云 高级开发工程师


毕业于华南理工大学,刚毕业时一度想要从事的是 Java 相关的工作,后面去一个智能家居全套解决方案的团队面 Java,然而入职后通知要使用 JS 语言开发服务端,一度懵了很久。然而逐渐从业务开发——发现/解决应用层问题——深入阅读各种 Node 框架/库源代码——研究底层性能这样一步步的走下来,开始很庆幸自己能在这样一个技术巨变的时间点接触到 Node,能看到 JS 越来越广泛地应用在服务端、跨平台客户端和物联网等方方面面。


生活中我喜欢音乐,爱好高达模型和对应的动漫,热衷于主机/掌机游戏,最近也开始发现自己有研究厨艺的苗头了——周末想吃什么可以自己做确实是一件相当美妙的事情。


来到阿里云后,非常开心能在朴灵老师的团队工作,当年从 Java 转型 Node.js 开发看的第一本书就是朴老师的 《深入浅出 Node.js》。有感于之前应用层框架/业务开发遇到的很多底层问题 ,目前致力于 Node.js 基础设施的开发和诊断线上 Node.js 应用底层故障的工具链的完善,能让天下没有难用的 Node.js,无疑会是一件充满成就感的事情。












完整演讲 PPT 下载链接


https://qcon.infoq.cn/2018/beijing/schedule


2019-08-24 17:134786

评论

发布
暂无评论
发现更多内容

Downie下载vip会员视频教程?Downie4最新许可证

Rose

Downie下载 Downie使用教程 Downie 4许可证 Mac视频下载器 Downie破解版

华为云CDN赋能企业数字化转型

YG科技

发现了一个对公有云资源进行规范管理的方法

cynthia

公有云 云管平台 安全合规

华为云大数据BI解决方案,助力企业数字化运营

平平无奇爱好科技

摆脱终端束缚,华为云桌面助力企业数字化转型

平平无奇爱好科技

精进云原生 - Dubbo 3.2 正式发布

阿里巴巴云原生

阿里云 云原生 dubbo

Oracle Apex学习之系统变量

back_wang

oracle ebs oracle apex

Linux面试必备

袁袁袁袁满

三周年连更

华为云桌面——云端上“最卷的云”

平平无奇爱好科技

华为云桌面随需而至,让办公数字化触手可及

平平无奇爱好科技

灵活高效,华为云桌面实现随时随地办公

YG科技

Shell脚本实战:Consul 服务注册和注销的最佳实践

小毛驴的烂笔头

Linux Shell

TestNG 中使用 Guice 来进行依赖注入

HoneyMoose

Oracle apex社区教程 PLSQL常用时间函数

back_wang

oracle apex

photoshop 2023【存储为窗口显示空白、黑屏】解决方法

Rose

ps 2023储存黑屏 Photoshop 2023

微服务 SpringBoot 整合 Redis GEO 实现附近商户功能

Bug终结者

java; Redis 核心技术与实战 三周年连更

macOS 13 Ventura (苹果最新系统) v13.3.1正式版

Rose

macOS Ventura 苹果系统下载 Mac最新系统

Koordinator 一周年,新版本 v1.2.0 支持节点资源预留,兼容社区重调度策略

阿里巴巴云原生

阿里云 开源 云原生 Koordinator

【直播回顾】数字化转型成为银行业发展的关键(下)

易观分析

数字化转型 银行

Unity 之 关于停止协程的五种方式解析

陈言必行

Unity 三周年连更

AlDente免费版,限制 Macbook 最大充电量,保护电池健康

Rose

AlDente Mac版 AlDente macOS 充电量阈值

跨平台应用开发进阶(五十五):uni-app 获取设备信息及 APP 报无相应权限问题分析及解决

No Silver Bullet

uni-app 跨平台应用开发 三周年连更 问题分析及解决 设备信息

Qz学算法-数据结构篇(排序算法--基数、总结)

浅辄

数据结构 三周年连更

华为云桌面,如何为企业构建新型工作方式

平平无奇爱好科技

华为云CDN加速,赋能企业数字化转型升级

YG科技

极客时间「大师课·深度剖析 RocketMQ5.0」上线啦,欢迎免费领取!

阿里巴巴云原生

阿里云 RocketMQ 云原生

上线控制台,降低使用门槛|Higress 1.0.0 RC 版本发布

阿里巴巴云原生

阿里云 云原生 Higress

达芬奇18补丁版下载 支持m1/m2/intel/win

Rose

DaVinci Resolve 18 达芬奇18破解版 视频剪辑调色软件

Spring Boot之log4j2基础使用入门|超级详细,建议收藏

bug菌

Spring Boot log4j2 三周年连更

浅谈华为云CDN在互联网领域的应用场景落地

YG科技

Kubernetes架构解析

乌龟哥哥

三周年连更

唯快不破——高效定位线上Node.js应用内存泄漏_QCon_黄一君_InfoQ精选文章