我有这个独特的问题,我的代码中使用的 linux 的 poll 系统调用获取了它等待轮询的 fds,我的意思是每毫秒 POLLIN。这会导致 CPU 使用率过高。我提供了 100 毫秒的超时,这似乎没有用。任何人都可以提出替代方案。
for (;;) {
ACE_Time_Value doWork(0, 20000);
ACE_OS::sleep(doWork); ----------------------------> Causing low throughput, put to decrease CPU usage / On removing this we see high CPU , but throughput is achieved.
..
.
..
if ((exitCode = fxDoWork()) < 0) {
break;}
}
fxDoWork()
{
ACE_Time_Value selectTime;
selectTime.set(0, 100000);
..
..
..
ACE_INT32 waitResult = ACE_OS::poll(myPollfds, eventCount, &selectTime);-----------------------------> Pollin happens for every milli second/Timeout is not at all useful
..
..
..
}
===============================================================