jrtplib-3.11.1 Зачем обходить все fd вместо fd с данными, которые можно прочитать? - PullRequest
1 голос
/ 16 июня 2019
// JRTPLIB 3.11.1, file path : JRTPLIB / src / rtptcptransmitter.cpp, line 292 - 317

// RTPSession::DeleteDestination(RTPTCPAddress(sock_with_no_data_readable))
// manually delete the fd with no data readable from the m_destSockets queue lead to sys cpu reduce to low rate!

// from line 280 - 324, JRTPLIB / src / rtptcptransmitter.cpp

    std::map<SocketType, SocketData>::iterator it = m_destSockets.begin();
    std::map<SocketType, SocketData>::iterator end = m_destSockets.end();

    status = PollSocket(sock, it->second);

Я надеюсь найти лучшее решение, которое снизит загрузку процессора!

Зачем перебирать все fd вместо fd с данными, читаемыми?Использование стратегии "traverse all fd" приведет к следующим проблемам.Когда в очереди m_destSockets находится большое количество файловых данных, которые не читаются, частота загрузки sys-процессора достигает 100%.

...