关于ARK框架中Update过多,解决方案的总结

先说下关于讨论这个问题的起因,是因为ARK框架中都是基于Plugin和Module的,所以所有跟业务相关的内容都是会继承自AFIModule/AFIPlugin,而这两个类中都会有一个Update函数,用来做必要时候的循环。因为原来的习惯不好,导致大家都习惯于每个Module中都会加一个空的Update函数。

因为有同学猜想这种会影响部分性能,所以我个人实测了下这种继承的虚函数执行的时间,

测试环境: Windows7 x64 + VS2017 + i7-6700 @ 3.4GHz + 16GB

编译模式: Release

测试代码如下:

测试结果如下:

测试的结果1个虚函数和3个虚函数循环1000W次,差不多是3倍。虽然从图上看起来也就不到50ms,但是如果有很多个模块的update函数下,是会拖慢一定性能的。
于是才有了和群内以为同学飞翔讨论的结果,讨论的比较天马行空,并且很多同学没有参与进来QQ群组电话,本文来总结下讨论结果。
我想的是如何把update减少空转,修改方法为通过注册的方式把Update函数在Module构造的时候注册进去,这样外面的大循环只会run需要的update函数列表。
飞翔的意思是作为框架层面的开发,框架考虑的是所有update平等,而不用限制开发同学的使用和习惯。通过策略来限制update的调用,讨论了一种可以动态均衡负载并且可人工参与的柔性策略。

为您推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注

− 3 = 2

This site uses Akismet to reduce spam. Learn how your comment data is processed.

2条评论

    1. 还没写完,并且还没有一个完全的解决方案,只有一个思路,稍后补全思路