在这个由软件定义的世界里,企业每每是经过 Web 应用和移动应用程序来提供他们大部分的服务。因此对企业来讲,一个很是重要的任务就是要确保用户拥有出色的使用体验。Node.js 正迅速成为时下最流行的平台之一,它被用于方便地搭建响应速度快、易于扩展的网络应用和移动应用程序。经过下图也能够看出,Node.js 正在成为新的主流。html
众所周知,Node.js 是单线程服务器,新事件会触发代码的执行,进行一系列 I/O 操做,并在完成后回调。对于 I/O 密集型的应用,例如 Web 和移动应用程序,这种事件驱动异步调用的计算模型很是有用,不过要在一个关键事务里同时跟踪多个异步调用则是一项艰巨的任务。node
在不久前, InfoWorld 发布了一篇文章,标题是《Node.js 日趋成熟:面临的新机遇和风险》,在这篇文章中,Serdar Yegulalp 对由 Node.js 驱动应用程序面临的机遇和风险作了评论,他也谈到 Koa、Express 和 Node.js-canvas 项目创造者 TJ Holowaychuk 从 Node.js 的开发社区中退出这件事。对 Holowaychuk 来讲,Node.js 是一个颇有价值、颇有生命力的项目,但 「若是你的应用很是脆弱,难以进行调试,而且很难进行重构和开发的话,那么性能再好也没有用」,他的这番话突出了 Node.js 目前所面临的挑战。数据库
既然 Node.js 已日渐成为主流,并且企业也开始使用 Node.js 来构建他们关键业务的移动端和 Web 端应用程序。那么,提升 Node.js 应用基础架构和异步调用过程的能见度,以及支撑程序和硬件基础设施的可视化,对企业来讲就变得相当重要。canvas
「APM」就提供了一个很好的解决方案。APM 能够帮助企业实时地对 Node.js 性能监控,深刻调用堆栈,在整个分布式环境中串联起事务,诊断生产和开发环境中的性能瓶颈。并且,企业也须要这种可视性,让潜在问题在真正影响到用户以前就被解决掉。而对于影响用户体验、致使评分很低的性能问题,他们也须要一种深刻源码级别的调试手段。浏览器
如下是确保 Node.js 程序最佳性能的五个技巧:服务器
首先,APM 解决方案能够自动发现应用的拓扑结构和相互依存关系,并基于线上应用程序的行为来跟踪关键事务,而后把它们关联起来。你应该确保本身的解决方案可以跟踪 Node.js 事件循环中全部的异步调用,并结合关键事务组合起来进行分析。同时,你应该可以清楚地看到关键事务端到端的展示和优先程度,而不仅是程序和基础设施节点的健康情况。网络
其实,APM 解决方案应该可以实时地监测到由各个模块抛出的错误和异常。经过不断跟踪业务性能,你应该可以找到那些偏离正常范围的较慢交易,深刻到实际问题,在它切实影响到用户以前,主动地修复错误或尽快解决异常问题。架构
若是想要排查任何性能问题,最好可以深刻到源代码级的级别。试想这样一个解决方案,它能够很是深刻地监控应用程序,抓到 Node.js 事件循环中全部异步调用并提供调用图。而后,你就能够经过浏览器或移动应用程序,轻松地定位到程序代码中的热点和慢方法。异步
你应该可以使用相同的监控方案,直观地看到全球各地的监测数据,来了解移动端和 Web 端的用户体验。这也能让你快速识别 Node.js 应用程序代码中那些很差的代码,在这些问题切实影响到用户体验以前修复它们,从而避免用户在社交媒体上分享他们糟糕的体验,他们有可能会卸载你的应用程序,甚至还会在 App Store 和其余评论网站上给予差评。分布式
对于频繁访问数据库的现代 I/O 密集型网站,Node.js 非阻塞的特色被认为是很是理想的。因此,关注支撑起 Node.js 应用程序的数据库、服务器等基础设施的性能是很是重要的。你应该可以深刻到慢查询、存储过程,或者硬件基础设施层面去快速的诊断和解决 Node.js 应用程序的问题。
写在最后:
更多 Node.js 的应用性能进行优化的话,能够点击这里进行下载,免费试用一下。也欢迎给咱们留言吐槽提出宝贵的建议。