2012-03-06 3 views
1

Мне было интересно узнать о параметрах двух API epoll.epoll_create и epoll_wait

  1. epoll_create (int size) - в этом API размер определяется как размер пула событий. Но, похоже, что больше событий, чем размер, все еще работает. (Я поместил размер как 2, а принудительный пул событий имел 3 события ... но он все еще работает!?) Таким образом, мне было интересно, что этот параметр на самом деле означает и интересует максимальное значение этого параметра.

  2. epoll_wait (int maxevents) - для этого API определение maxevents является прямым. Однако я вижу недостаток информации или советов о том, как определить этот параметр. Я ожидаю, что этот параметр будет изменен в зависимости от размера пула событий epoll. Любые предложения или советы будут отличными. Спасибо!

ответ

0

1.

"человек epoll_create"

 
DESCRIPTION 
     ... 
     The size is not the maximum size of the backing store but just a hint 
     to the kernel about how to dimension internal structures. (Nowadays, 
     size is unused; see NOTES below.) 

NOTES 
     Since Linux 2.6.8, the size argument is unused, but must be greater 
     than zero. (The kernel dynamically sizes the required data struc‐ 
     tures without needing this initial hint.) 

2.

Просто определить точное число самостоятельно, но имейте в виду, что придав ему небольшое количество может упасть из-за эффективности немного.

Поскольку меньшее число присвоено значению "maxevent", тем чаще вам придется вызывать epoll_wait(), чтобы использовать все события, поставленные в очередь уже на epoll.

Смежные вопросы