poll select linux怎么樣,它是做什么的,以后工作好嗎?
linux怎么樣,它是做什么的,以后工作好嗎?作為一名DBA操作和維護(hù)工程師,學(xué)習(xí)Linux有很多用處,如果你想在Linux上有一個(gè)很好的發(fā)展。Linux是必須的掌握Linux是比較容易找到工作的嚴(yán)格
linux怎么樣,它是做什么的,以后工作好嗎?
作為一名DBA操作和維護(hù)工程師,
學(xué)習(xí)Linux有很多用處,如果你想在Linux上有一個(gè)很好的發(fā)展。Linux是必須的
掌握Linux是比較容易找到工作的
嚴(yán)格來說,這種說法是不準(zhǔn)確的。Epoll的性能并不總是比select好。首先,我們需要了解select和Epoll的基本原理。
假設(shè)我們現(xiàn)在有100個(gè)套接字連接。select的方法是每隔一段時(shí)間輪詢這100個(gè)連接,以確定是否存在網(wǎng)絡(luò)事件。如果有,它會(huì)處理它們。
Epoll的方法是創(chuàng)建一個(gè)鏈表,然后告訴操作系統(tǒng),如果100個(gè)連接中的任何一個(gè)發(fā)生網(wǎng)絡(luò)事件,它將被放入鏈表中。然后epoll每隔一段時(shí)間就會(huì)檢查鏈表中是否有元素,如果有則進(jìn)行處理。
與select相比,epoll大大減少了空輪詢次數(shù),提高了輪詢效率。同時(shí),epoll使用MMAP對(duì)其進(jìn)行優(yōu)化,因?yàn)樗枰趕elect輪詢期間將所有連接的FD從內(nèi)核復(fù)制到用戶空間,這會(huì)增加IO開銷。
然而,我們不能簡(jiǎn)單地說誰更好。
例如,如果100個(gè)連接的網(wǎng)絡(luò)活動(dòng)非常頻繁,則select的每次輪詢將很少或沒有空輪詢,select的無用功能將非常少。相反,epoll的性能會(huì)因?yàn)槎嗔艘徊讲僮鞫儾睢?/p>
因此,select適用于業(yè)務(wù)時(shí)間較短的短鏈接,如通用HTTP服務(wù)。Epoll適用于連接時(shí)間長(zhǎng)但網(wǎng)絡(luò)活動(dòng)不頻繁的場(chǎng)景,如聊天室。