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

所属专题:编程语言

所属领域:

嘉宾 : 黄一君 | 阿里云高级开发工程师

会议室 : 203CD

讲师介绍

专题演讲嘉宾:黄一君

阿里云 高级开发工程师

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

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

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

议题介绍

地点:203CD
所属专题:编程语言
所属领域:

演讲:唯快不破——高效定位线上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. 一些总结。

交通指南

© 2020 Baidu - GS(2019)5218号 - 甲测资字1100930 - 京ICP证030173号 - Data © 长地万方