美文网首页
调试视频通话延迟

调试视频通话延迟

作者: bigonelby | 来源:发表于2019-01-13 20:14 被阅读10次

最近的工作任务是,找到我们视频通话中的延迟瓶颈,找一找解决方案
之前没有做过类似的工作,所以这次做起来还是有些挑战。

这里总结一下这次工作的主要思路:

  1. 首先就是梳理流程

充分的了解视频发送端和接收端的流程,是找到时间延迟的关键,我的思路就是阅读代码,配合xcode的断点,梳理出代码的逻辑,并且总结出UML图。我比较喜欢画类图,这样可以比较清晰的看出类和类之间的关系。一般画UML图还要画时序图,我不喜欢画时序图,我个人习惯于在类图上以注释的方式说明类和类之间的调用流动关系。

在画类图的时候还有一个小技巧,就是不要想着画的面面俱到。因为太细致了就会让我们迷失方向,最好是有针对性的画。有时,为了凸显类之间协同完成的一个功能,则引入了类的一些成员和方法;如果描述另一个功能,可能同一个类引入的就是完全不一样的成员和方法了。所以类图的精髓在于简单,只说明一个道理,只说清一个流程就好。

  1. 增加时间的打印

有了流程的梳理,下面就是增加一些时间的打印了,在各个流程上增加一些必要的log,以便提供分析的素材。增加log的时候,实际上就可以理解为一个独立的计时统计的模块。为了保证代码的高聚合低耦合,我们最好设计出统计时间的文件和对应的类,并且提供简单的宏调用。

设计的这个类可以是一个单例,也可以是一个静态类。这样在代码流程的不同地方,可以方便的增加打印信息。有了这些打印的log,我们就有了素材,有了素材,我们就可以进一步的分析时间的消耗了

  1. 数据分析

首先我们需要从log中提取出数据,提取的过程可以用shell的awk,grep,必要的时候配合sort,uniq等常用的处理程序。我们可以将我们感兴趣的数据保存成一个文件,并且通过excel表对数据进行画图分析。

另一种高效的方法就是利用python了,利用python我们可以非常方便的定制化我们的提取流程,并且通过python自带的绘图库,就可以直接画出绘图曲线。通过绘制出的图,我们很容易的可以找到时间的消耗。

  1. 性能分析

我们可以通过xcode的profile功能,进行性能的分析。用xcode的profile跑一段数据,我们可以研究profile中录制的数据,看看在性能的跳变点,是否有可以进行优化的。

比如,log信息实际上是非常费性能的,如果在xcode的profile分析路径中发现有log信息的话,我们就可以直接将log信息去掉。如果log信息非常必要的话,我们也可以减少log打印的频度,可以每隔几秒输出一次log。

另外就是还有一些流程是否可以优化,比如音频如果进行了重采样,就可以想一想,是否可以让采集的采样率和实际处理发送的采样率保持一致?

通过这样的分析,就可以有效的对性能进行优化了。

相关文章

  • 调试视频通话延迟

    最近的工作任务是,找到我们视频通话中的延迟瓶颈,找一找解决方案之前没有做过类似的工作,所以这次做起来还是有些挑战。...

  • 小程序实现双人视频通话流程

    基于 和 所构建的双人视频通话功能。 技术指标 通讯延迟:300ms - 800ms底层协议:基于 UDP...

  • 视频通话

    今天跟我妈视频了 问了近来可好 我说很好 问我在哪里上班我说大连 她说我以为你辽宁呢 我说在大连 我说上班有六七天...

  • 视频通话

    昨晚,大学同学和我视频,问我国庆能不能去参加他的婚礼,我确实很想去,可是国庆的票没买到,就去不成了!然后接着聊聊,...

  • 视频通话

    关于视频通话的意义,我是怎么想的,写一些自己的感悟。 自杀的人为什么会自杀,是因为他觉得这个世界和他没有关系。我们...

  • 视频通话

    周六的傍晚,刚吃过饭,忽然接到视频通话,显示的呼叫人是爸爸。 他主动给我打电话的次数都为数不多,视...

  • 视频通话

    奶奶拿来一块多肉的排骨,递到你嘴边,“吃扣肉。” 你咬了一大口,嚼着。 “给东东吃一口吧。” 我配合奶奶张大嘴巴,...

  • 视频通话

    3月8日的女神节,在被学校里的男神们一番“宠”之后。我安静地回到了家。女神节本想和家人一起庆祝,慰劳一下...

  • 视频通话

    虽然去年近一年基本都是在用微信跟朋友打电话以及聊视频,但是没并没有真正注意过聊天方式的变化。今天在路上看到一个妈妈...

  • 视频通话

    视频 班上的孩子差不多完成了全班视频通话问候,我歇了一口气,这次通话完不知道下次见面是在...

网友评论

      本文标题:调试视频通话延迟

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