|
衡量ai执行效率的指标是ai开始行动到结束时玩家需等待的时间。
等待时间自然是越短越好。ai算法可说都是cpu不断自动计算,因此,ai时间和平台所用cpu密切相关,同样算法基于Intel的PC和基于ARM的ios会出现不同结果。
要清楚ai执行效率,首要是知道ai把大部分时间花在哪里。以下是ai执行的时间及对比。
注:以#9, play_ai_turn 5620 ms, (draw: 2088(15), analyzing: 605), [5499](1+[5217]+281)(recruit: 455, combat: 1361, build: 0, move: 3401, diplomatism: 0)为例说下各字段语义。
- #9:当前执行的ai势力。
- play_ai_turn 5620ms:play_ai_turn是ai执行整个过程,它表示此次执行共花费5620毫秒。(所有时间单位都是毫秒)。
- draw: 2088(15):此次ai过程中display::draw函数总共花掉2088毫秒。此次ai过程总共调用了15次display::draw。
- analyzing: 605:此次ai过程分析攻击路径总共花掉605毫秒。
- [5499](1+[5217]+281):5499是由后面三个时间加出的时间,它一般等于play_ai_turn后那个时间。1:do_move之前用的时间;5127:do_move用的时间;281:do_move后用的时间,这个时间一般待于一次重画小地图的display::draw时间。
- (recruit: 455, combat: 1361, build: 0, move: 3401, diplomatism: 0):这是do_move中的各个阶段花费时间。
从以上可以看出:
1:display::draw很耗时。
2:move是个很耗时操作。
3:分析攻击路径(analyzing)是个耗时操作。
二楼:减少调用display::draw |
|