2012-03-06 66 views
1

我在想epoll的兩個API的參數。epoll_create和epoll_wait

  1. epoll_create(int size) - 在此API中,size被定義爲事件池的大小。但是,似乎有更多的事件比尺寸仍然有效。 (我把尺寸設置爲2,並強制事件池有3個事件...但它仍然有效!?)因此,我想知道這個參數實際上意味着什麼,並且對這個參數的最大值感到好奇。

  2. epoll_wait(int maxevents) - 對於此API,maxevents定義非常簡單。但是,我可以看到缺乏關於如何確定此參數的信息或建議。我希望這個參數可以根據epoll事件池的大小來改變。任何建議或意見將是偉大的。謝謝!

回答

0

「人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上排隊的事件。

相關問題