select
select()
पर कॉल करते समय हमेशा कर्नेल को वितरण डिस्क्रिप्टर।
लेकिन epoll
epoll_ctl()
पर कॉल करते समय एक बार वर्णनकर्ता को डिलीवरी करें और epoll_wait()
पर कॉल करके ईवेंट प्राप्त करें।
और select
का उपयोग करते समय ईवेंट की जांच के लिए अधिकतम_डिस्क्रिप्टर को लूप 0।
लेकिन घटना के लिए लूप epoll
का उपयोग करते समय घटनाओं की जांच के लिए वर्णनकर्ताओं का सामना करना पड़ा।
ये प्रदर्शन में अंतर बनाता है।
और select
की अधिकतम संख्या में वर्णक की सीमा है क्योंकि यह बिट सरणी का उपयोग करती है।
लेकिन epoll
की कोई सीमा नहीं है क्योंकि यह संरचना सरणी का उपयोग करती है।
और select
प्लेटफार्मों (विंडोज, लिनक्स, यूनिक्स, बीएसडी)
लेकिन epoll
केवल linux में मौजूद है के अधिकांश में मौजूद है।
बेशक , वहाँ epoll
की (IOCP खिड़कियों में आदि, बीएसडी में kqueue, ..) अन्य प्लेटफार्मों में प्रतिस्थापन मौजूद
http://stackoverflow.com/questions/2032598/caveats-of-select-poll-vs -epoll-रिएक्टरों में मुड़ – Young