簡體   English   中英

編寫高性能服務器。 哪種方法?

[英]Writing High Performance Server. Which method?

如果您需要編寫高性能服務器,該怎么辦?

  • 使用異步阻止 epoll / kqueue? 但是如何在這里處理阻塞的系統調用epoll / kqueue? 也許在使用工作線程執行阻塞epoll / kqueue的主線程的主線程中?
  • 使用libevent? 它是否甚至與epoll / kqueue不同,因為它僅封裝了選擇,epoll,kqueue等不同的機制?
  • 或者改為使用異步非阻塞 libaio使用異步阻塞epoll / kqueue? 但是它甚至支持套接字還是僅支持磁盤IO?

謝謝您的回答。

我會使用libevent。

無論目標機制是什么,它都會在目標平台上使用最佳的可用機制。 因此,在不做任何更改的情況下,您的程序將在BSD上使用kqueue ,在Linux上使用epoll(4) ,並且在可能存在的其他條件下使用其他最佳方法,同時仍舊使用舊平台上的select(2) ,並且在某種程度上也可以使用視窗。

神奇的軟件。 :)

我會使用boost :: asio
每個系統使用最佳的非阻塞IO

  • 適用於Linux的epoll
  • NIX的kqueue喜歡
  • Windows上的重疊I / O

它也可以處理其他流(COM,文件)。
概念很簡單,創建io_service類並編寫句柄(類似事件)類來管理流。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM