我们目前在使用DSP做一个算法处理服务器,客户端通过TCP网络,按照网络协议将需要处理的数据发送给DSP服务器,DSP接到数据后进行运算,运算结束后将运算结果,再发送给客户端。
现在的现象是,当客户端连续发送多个数据请求时,发送到中间某一个时网络会中断,当前算法特点是,由于运算最较大,运算时间比较长,暂未进行优化,比如30s,50s,我们现在就是希望能让程序正常运行,完成我们的算法要求,下一步工作再进行优化,但是现在这个中断的问题让我们比较头疼,请专家指教。
经过多次试验,最后我将我们的算法注掉,换成了下面代码,网络是正常的,不会中断。
void Test(指定时间间隔)
{
获取系统当前时间1
while(1)
{
获取系统当前时间2
if(时间2-时间1 >= 指定时间间隔)
return;
}
}
我又将我们的算法换成了下面代码,网络很快就会中断。
void Test()
{
while(...)
{
for(...)
{
纯算法,加减剩除,专门用来耗时。
}
}
}
从上面的现象看,我们猜测,是由于算法占用CPU时间过长,系统无法获得CPU,没有时间处理网络相关信息,造成的,各位大侠有什么好办法,请多多回复。