类库大魔王
类库大魔王 多年C++、Go项目经验,长期从事跨平台(Windows/macOS/iOS/Android)应用架构设计与开发。

性能问题解决了


今天终于把Thumbnail Service的性能问题解决了。

之前一直在客户端侧找原因,看现象一直是觉得客户端发命令发晚了。

今天一咬牙用格式化打印出16进制和字符的方式把客户端要发的内容都打印出来,发现命令没发晚。

但是从服务器端看,服务器端的命令handler收到命令确实晚了!

于是想到一种情况,是不是服务器端收命令其实不晚,只是把命令dispatch到handler晚了。

然后试着把收到的数据的长度变化都打出来,发现服务器端收到的数据并且没处理的越来越多!

然后想通了!

原来每收到一次数据,不管这次数据包含了多少条命令,服务器端都只处理一条命令,也就是dispatch一条到某个handler,剩下的数据中其他的命令都要下次才会处理,于是只要一次收到多条命令的情况持续出现,那么命令处理的延时就会越来越严重。

解决也很简单,每收一次数据,都尽量多地dispatch命令。

效果很明显,根据客户端集成的同事讲,“速度现在巨快”,“简直棒呆了”。

感觉本文不错,不妨小额鼓励我一下!
如果你有Visa、MasterCard之类的国际银行卡,也可以考虑以下选项:
如果你看不到评论框,说明Disqus被墙了。