Ich habe einen TCP-Server, der Libev als Ereignisschleife verwendet; für neue akzeptierte Steckdosen i gesetzt:100% CPU-Auslastung mit libev
ev_io_init(&conn->io, tcp_conn_on_event_cb, conn->fd, EV_READ | EV_WRITE);
wenn eine neue Verbindung steht vor der Tür, verbraucht mein Server die CPU-Zyklen insgesamt i 100% CPU-Auslastung haben. mein Programm ruft die ganze Zeit der Rückruf tcp_conn_on_event_cb mit revents gesetzt als EV_WRITE
static void tcp_conn_on_event_cb(ev_loop_t *loop, ev_io *ev, int revents)
wenn ich
strace mybinary
machen ich habe dies:
epoll_wait(4, {{EPOLLOUT, {u32=7, u64=4294967303}}}, 64, 59743) = 1
epoll_wait(4, {{EPOLLOUT, {u32=7, u64=4294967303}}}, 64, 59743) = 1
epoll_wait(4, {{EPOLLOUT, {u32=7, u64=4294967303}}}, 64, 59743) = 1
epoll_wait(4, {{EPOLLOUT, {u32=7, u64=4294967303}}}, 64, 59743) = 1
epoll_wait(4, {{EPOLLOUT, {u32=7, u64=4294967303}}}, 64, 59743) = 1
epoll_wait(4, {{EPOLLOUT, {u32=7, u64=4294967303}}}, 64, 59743) = 1
epoll_wait(4, {{EPOLLOUT, {u32=7, u64=4294967303}}}, 64, 59743) = 1
....
gibt es eine Lösung fo Dieses Problem bitte?
Dank verwenden. Das hat mir geholfen. Ich war hinter Timern, die hohe CPU verursachen. Aber das hat mein Problem gelöst. Ich habe sowohl EV_READ als auch EV_WRITE für den neuen Socket eingestellt. – sunil
Hallo; Sie sind willkommen –