美文网首页
一则真实的程序猿小事

一则真实的程序猿小事

作者: 孤远 | 来源:发表于2018-12-21 08:39 被阅读0次

    某天,不知道是谁最先发现的,在浏览器端不停的刷新一个列表请求,然后响应会越来越慢,响应时间越来越长,领导知道了就过来询问,spring处理一个请求是不是并发的呀?不停的刷新,为什么响应会越来越慢呢?

    昨天,某大牛出手了(嗯,就是前几天说的刚转到团队的),真相终于大白,在浏览器端不停的刷新,浏览器会把请求阻塞的,上一个请求响应完成,下一个请求才会向后端提交,如果短时间内连续不停的点击"刷新"按钮,阻塞队列就会越来越长,那么后续的请求也就是你看到的"越来越慢"。

    实际上从冯诺依曼架构,程序局部性理论来说,每一次的处理应该越来越快才对,你所看到的"越来越慢"只不过是浏览器的阻塞时间变得越来越长,请求的真正处理时间会差不多,理论应该更短。

    都是做后端的,谁这么牛叉,最早发现的?

    经验很重要。

    很多时候,问题的解决方案不在问题的所在层,而往往在相邻层面。

    如果一开始按照怀疑spring的思路出发,接下来就会加日志打点统计处理时间,最后会得出不是后端的问题,这个时候才开始怀疑浏览器端,很多时间都"浪费"了。。。

    更牛叉的是解决问题的人,没有在后端日志打点,一出手就发现是浏览器端的猫腻——浏览器会对同一个域名的请求进行阻塞,如果在浏览器上不停的点击刷新,上一个请求得到响应,才会处理下一个请求,点击越频繁,阻塞时间就越长。

    因为我们的工位都离得不远,当大牛跟领导解释清楚之后,领导深深地长长的叹了一口气——"哎。。",这是以前从来没有听到过的叹气,我真真的能听出来,这一生长叹里面有好几个意思。

    相关文章

      网友评论

          本文标题:一则真实的程序猿小事

          本文链接:https://www.haomeiwen.com/subject/mripkqtx.html