简单记录服务器耗时

简介: 简单记录服务器耗时

周末了,来点简单轻松的内容。


在日常的开发过程中,我经常会关注每个接口的响应速度,准确的说是服务器从接收到请求然后进行业务逻辑处理,最后完成响应这段过程的耗时时长。当然这个小功能中间件早就帮我们做好了,不过我们自己如何简单的去实现它呢?


计时嘛,很简单啊。请求进来之后标记一下时间点,等到完成之后在标记一下计算时间差就行了嘛。


是的,没错。那么我们如何区分每个不同的请求呢,自己维护一个队列记录吗?还有,请求和响应两步分别标记时间是否就意味着我们需要分别调用两次处理函数呢?


当然不是。每个请求都有一个自己对应的 request、response 对象,当请求进来时直接为 request 对象添加自定义的属性记录第一个时间点即可,同时直接监听 response 的 finish 事件。


示例:


是不是真的很简单,处理函数只在最开始调用一次,计算时间间隔调用 node 自带的 process.hrtime 函数即可。


最后再用 curl  模拟不同的请求测试下:

看到这里是不是有一种很熟悉的感觉。


监听请求的响应耗时有助于我们发现服务器接口的性能瓶颈,而我们若是进一步记录不同接口的访问频率则可能帮助我们发现业务上的优化改进点(比如用户多次调用了商品描述接口,但是却很少调用订单买入接口,则我们可能会思考是不是业务流程不够简洁、或者买入的点击按钮不够显眼等等)。


好吧,就写这么点内容了。

目录
相关文章
|
1月前
|
SQL 关系型数据库 分布式数据库
在PolarDB中,慢日志明细中记录的耗时包括这个等待时间吗?
在PolarDB中,慢日志明细中记录的耗时包括这个等待时间吗?
48 0
|
SQL 数据挖掘 数据管理
时间回溯 | 如何按需极速查询数据库实例的历史数据?
未来数据库备份DBS团队及数据管理团队会进一步挖掘备份数据的使用价值,在闪回,数据变更轨迹,数据订正,历史数据分析等领域为用户提供更多的可能。
时间回溯 | 如何按需极速查询数据库实例的历史数据?
|
11月前
|
SQL Arthas druid
MyBtais 批量插入慢排查及分析(后续)
MyBtais 批量插入慢排查及分析(后续)
125 0
|
SQL 关系型数据库 MySQL
mysql查询优化实战:查询用时一分半降到三毫秒
项目中的课程预约记录查询功能,线下门店反馈说进入到页面需要等2分钟
mysql查询优化实战:查询用时一分半降到三毫秒
一次性捋清楚吧,对乱糟糟的“日志”说再见
最近一个朋友老是和我抱怨:公司系统日志打得实在是太烂了,有用的信息很少,没用的一大堆。就连那有用的信息,在那么多节点日志之间进行追查,也是痛苦的一笔。 我问他,公司没有日志收集吗,日志收集起来看总好过一个节点一个节点日志查看。他表示,公司有接入一个收费第三方的日志产品,做了收集。但是仅仅是方便了统一化查看搜索,但是系统本身的日志缺少一些关键性的要素。比较乱,在很多微服务之间查看调用日志时定位很难。
查出与当前系统时间间隔30分钟前后的数据
查出与当前系统时间间隔30分钟前后的数据
75 0
查出与当前系统时间间隔30分钟前后的数据
|
Java
这4种方式,统计代码执行耗时,才足够优雅!
这4种方式,统计代码执行耗时,才足够优雅!
285 0
|
SQL 前端开发 关系型数据库
为什么就查了一行数据,执行那么慢?
今天主要介绍一下查了一行数据,为什么慢到人发慌。剖析一下MySQL的底层运行流程!
为什么就查了一行数据,执行那么慢?
这样统计代码执行耗时,才足够优雅!
代码耗时统计在日常开发中算是一个十分常见的需求,特别是在需要找出代码性能瓶颈时。 可能也是受限于 Java 的语言特性,总觉得代码写起来不够优雅,大量的耗时统计代码,干扰了业务逻辑。特别是开发功能的时候,有个感受就是刚刚开发完代码很清爽优雅,结果加了一大堆辅助代码后,整个代码就变得臃肿了,自己看着都挺难受。因此总想着能不能把这块写的更优雅一点,今天本文就尝试探讨下“代码耗时统计”这一块。
如何优雅的统计代码耗时?
代码耗时统计在日常开发中算是一个十分常见的需求,特别是在需要找出代码性能瓶颈时。 可能也是受限于 Java 的语言特性,总觉得代码写起来不够优雅,大量的耗时统计代码,干扰了业务逻辑。特别是开发功能的时候,有个感受就是刚刚开发完代码很清爽优雅,结果加了一大堆辅助代码后,整个代码就变得臃肿了,自己看着都挺难受。因此总想着能不能把这块写的更优雅一点,今天本文就尝试探讨下“代码耗时统计”这一块。
191 0