第六章 不具合1-《上帝的游戏》


    第(3/3)页

    会议室的气氛很压抑,周东亦更是阴沉着一张脸,这次的事故让他受到总部的严厉批评,正在气头上,这时候谁也不敢多说话,生怕触了霉头。

    严亦打开投影仪,将会议室的电脑远程连接到自己的电脑上,开始了分析讲解。

    “这次不具合的原因已经初步调查清楚,之所以照成日方服务器的崩溃,是因为程序中的逻辑出错,形成了死循环。具体出错的地方我已经定位到,大家看下面这段代码……”

    严亦说着打开了一个文件,映在墙壁的投影上显示出了一段代码:

    for(inti=0;iCONSTANTS.MAX_LENGTH){break;}//todo...}

    “大家请看,代码for循环中对DB做了一些请求,但是循环上限的getLength方法得到的数值却是一个天文数字,所以照成这个循环始终在运行,大量的DB请求直接导致了服务器超载,最后崩溃……”

    “那为什么我们这边的测试没有出现问题?”李丽薇打断严亦的讲解问道。

    “那是因为我们这边的数据量小,而日方的真实运行环境中却是非常庞大的数据量,所以同样的代码在不同的环境中运行次数完全不在一个数量级。”

    严亦停顿了一下,见李丽薇没有异议,正要继续讲解,旁听的韩钰突然打断道:“我有个问题。”

    “你说。”

    “你看for循环中的代码,在if语句中明明有跳出循环的break,如果getLength方法得到的结果真是一个天文数字,循环早在达到常量CONSTANTS.MAX_LENGTH定义的上限值前就跳出循环了,怎么可能一直进行下去?”


    第(3/3)页