nodejs python性能_监控Nodejs的性能
最近想监控一下Nodejs的性能。记录分析Log太麻烦,最简单的方式是记录每个HTTP请求的处理时间,直接在HTTP Response Header中返回。
记录HTTP请求的时间很简单,就是收到请求记一个时间戳,响应请求的时候再记一个时间戳,两个时间戳之差就是处理时间。
但是,res.send()代码遍布各个js文件,总不能把每个URL处理函数都改一遍吧。
正确的思路是用middleware实现。但是Nodejs没有任何拦截res.send()的方法,怎么破?
其实只要稍微转换一下思路,放弃传统的OOP方式,以函数对象看待res.send(),我们就可以先保存原始的处理函数res.send,再用自己的处理函数替换res.send:
app.use(function (req, res, next) {
// 记录start time:
var exec_start_at = Date.now();
// 保存原始处理函数:
var _send = res.send;
// 绑定我们自己的处理函数:
res.send = function () {
// 发送Header:
res.set('X-Execution-Time', String(Date.now() - exec_start_at));
// 调用原始处理函数:
return _send.apply(res, arguments);
};
next();
});
只用了几行代码,就把时间戳搞定了。
对于res.render()方法不需要处理,因为res.render()内部调用了res.send()。
调用apply()函数时,传入res对象很重要,否则原始的处理函数的this指向undefined直接导致出错。
实测首页响应时间9毫秒:
nodejs python性能_监控Nodejs的性能相关推荐
- java jpa性能_[Java Performance] 数据库性能最佳实践 - JPA和读写优化
数据库性能最佳实践 当应用须要连接数据库时.那么应用的性能就可能收到数据库性能的影响. 比方当数据库的I/O能力存在限制,或者因缺失了索引而导致运行的SQL语句须要对整张表进行遍历.对于这些问题.只相 ...
- python虚拟cpu性能_基于Tensorflow:CPU性能分析
iostat iostat用于输出CPU和磁盘I/O相关的统计信息. 命令格式: 1)显示所有设备负载情况 指令: iostat -m 2 5 cpu属性值说明: %user:CPU处在用户模式下的时 ...
- nodejs爬虫与python爬虫_【nodeJS爬虫】前端爬虫系列 -- 小爬「博客园」
写这篇 blog 其实一开始我是拒绝的,因为爬虫爬的就是cnblog博客园.搞不好编辑看到了就把我的账号给封了:). 言归正传,前端同学可能向来对爬虫不是很感冒,觉得爬虫需要用偏后端的语言,诸如 ph ...
- nodejs初学者书籍_表示nodejs的后继者
nodejs初学者书籍 If you observe carefully, DENO is an anagram of the word NODE. But probably much more th ...
- mysql 树莓派3 性能_树莓派 3b 的性能怎么样?
树莓派不是拼性能的设备,拼的是生态+低功耗+低价格. 3b的性能其实也挺不错了,不过还是不适合跑密集计算和图形计算. 再就是树莓派3b的网卡基于usb2.0的,所以带宽很低(网卡),所以不适合做多媒体 ...
- redis value多大会影响性能_事务对MySQL性能有什么影响?有无索引查找对其影响有多大?...
推荐学习 阿里P8MySQL,基础/索引/锁/日志/调优都不误,一锅深扒端给你 抖音后端123面开挂,全靠这份啃了58天的「Java进阶核心知识集」 肝了30天,整出这份[分布式宝典:限流+缓存+通讯 ...
- nodejs mysql事务处理_关于NodeJs如何使用Mysql模块实现事务处理实例
本篇文章主要介绍了NodeJs使用Mysql模块实现事务处理 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 依赖模块: 1. mysqlnpm install mysq ...
- nodejs安装不好_【nodejs安装错误2503】nodejs安装2503_nodejs 2503-系统城
2017-12-27 14:50:11 浏览量:959 最近,一位windows10系统用户反馈自己在电脑中安装nodejs时,突然遇到提示错误代码2503,因为错误提示是英文界面所有不知道到底是那里 ...
- mysql 主从复制 性能_zabbix监控mysql各项性能,主从复制
###################################################### 监控mysql(默认监控模板不能用,再agentd.conf开启自定义key,自己编写脚本 ...
- java substring 性能_《Java程序性能优化》subString()方法的内存泄露
String的构造 首先了解下String的构造,String内部使用char [] value 来存储字符. 需要注意 offset和count在1.7已经没有了. /** The value is ...
最新文章
- java 十二星座数据下载_十二星座
- 推荐升级版PDF在线转Word转换器
- 【机器学习基础】理解关联规则算法
- Android Studio 找不到EventBus/ButterKnife等第三方包解决方案
- JAVA运行程序代码段
- 什么为java运行时的环境_什么是JRE?Java运行时环境简介(一)
- ORACLE查看某个表空间里有哪些表
- linq to sql取出随机记录/多表查询/将查询出的结果生成xml
- 三菱fx2n-2ad编程实例_三菱PLC编程实例,PLC控制自动成型机
- java 方法注释_Java注释,java方法注释详解
- [NSSCTF][羊城杯2020]WEB复现
- 音视频技术之《移动直播秒开优化经验》
- AI产业快速落地难?破局人来了
- 中国电信SIM卡绝杀冷、热钱包,区块链手机还没火就要凉凉?
- 文件损坏打不开怎么办?excel文件修复,看看这些解决办法
- linux环境下解压rar文件
- 【Build】关于-fPIC, -fpic, -fpie, -fPIE的一点理解
- 在 Linux 上使用 time 命令优雅的统计程序运行时间
- Oracle 数据库 Scott 用户介绍
- 刀剑斗神传只显示11个服务器,与官方服务器互通 《刀剑斗神传》电脑版即将上线...
热门文章
- 试卷生成系统安装与卸载
- 896.Montonic Array - LeetCode
- Winfrom开发之动态生成TreeView树形菜单
- Spring Cloud各个组件的配套使用
- 【译】用CSS实现基线韵律
- Android Studio 0.1 gradle home的问题
- Android: 一个两点触控的案例
- 精通Hibernate类与类关联关系:[三]映射一对多双向自身关联关系
- 在Sql的where中使用case进行不同字段筛选|Case的2种使用方法和一种少为人知的用途...
- CAngle类 角度转换类 C++