摘要: 使用Easy-Monitor,能夠準肯定位Node.js應用的性能瓶頸,幫助咱們優化代碼性能。javascript
當應用出現性能問題時,最大的問題在於:**如何準肯定位形成性能瓶頸的代碼呢?**對於Node.js開發者,這裏推薦一下Easy-Monitor,它應該是阿里巴巴某個90後程序員開發的。這個NPM模塊能夠幫助咱們快速定位性能瓶頸。html
當負載較高時,某個後端模塊的響應時間慢了不少,甚至出現超時錯誤"504 Gateway Time"。經過查看監控可知,這個模塊在高峯期的CPU使用量是滿負荷的,這有多是問題所在。java
接入Easy-Monitor很是簡單,在入口js文件中導入便可:node
if (process.env.NODE_ENV === "development")
{
const easyMonitor = require("easy-monitor");
easyMonitor("backend");
}
複製代碼
啓動應用,訪問:http://localhost:12333/index,便可查看Easy-Monitor的UI界面:git
**ab**命令能夠用於進行壓力測試程序員
ab -n 1000 -c 10 -T 'application/json' -p data.json http://localhost:3000/data/
複製代碼
運行ab測試的同時,在easy-monitor界面,選擇cpu,而後start。easy-monitor就會默默地採集CPU數據,5分鐘以後,就能夠看到統計結果:github
使用Fundebug,闊以及時發現並修復應用錯誤,趕忙免費試用吧!!!apache
由Easy-Monitor的統計結果可知,函數A是性能瓶頸,消耗了最多的CPU時間。json
那麼,剩下的工做就很是簡單了,對函數A進行性能優化便可。通過分析,函數A進行了大量重複計算,增長2行代碼就能夠大大地優化其性能。具體細節再也不贅述,由於不是本文重點。後端
根據ab命令的測試結果,優化前平均每秒處理5.36個,優化後這個數字變成了48.35,是以前的9倍。將這個模塊部署以後,服務器的CPU使用率大幅降低,接口的響應時間也恢復了正常。
使用Easy-Monitor,能夠將性能瓶頸準肯定位到某些函數,而後進行鍼對性的優化,這樣能夠幫助咱們快速修復性能問題。