典型bug之死循环
开发由于手抖或者考虑不周全(这里是考虑不周)出现代码中存在死循环,且代码覆盖率不能发现(代码覆盖了未必会触发死循环),
建议每次代码diff时重点关注循环退出条件是否总是成立。可以防止不易触发的死循环存在。
一般常见的死循环形式如下,在for内部处理过程中对循环变量自减,导致退出循环条件不成立。
下面代码给出了退出循环的break语句。
for(int i=0;i<n;i++) { 处理操作; if(满足某种条件) { 处理操作; i--; } //if(满足某种条件) // break; }
对于测试稳定性过程中触发的死循环可能存在如下表象:1.cpu占用率一直高于正常值2.qps上不去且下降;
3.cost高于正常值;很可能程序中出现了死循环。