簡體   English   中英

優化吞吐量:多線程與多進程

[英]Optimizing throughput: multi-thread vs. multi-process

我正在一個處理大量系統的系統上進行大量的計算。 該系統有兩個主要部分,第一部分是處理輸入/輸出,第二部分是處理該數據並計算結果。 但是問題在於它不能處理50個項目,而應該一次處理1000個以上的項目。 這兩個組件都有多個線程運行以執行不同任務。 我在Linux平台上並使用c ++。 據我了解,在Linux系統中,除了共享虛擬內存空間外,線程和進程幾乎相似。 所以我的問題是,將I / O與處理單元分開並將它們放在單獨的可執行文件或進程中,然后使用共享內存或消息隊列或任何其他IPC技術是一個好主意嗎?

在您的情況下,絕對不會。 為了安全起見,使用了不同的進程:如果一個進程崩潰,則另一個進程繼續。 如果黑客管理一個進程,則您可以限制其權限,這樣黑客就不會做任何有害的事情(在這種情況下,代碼中的錯誤也不會做任何有害的事情)。

使用可用的任何概要分析工具。 當今的計算機是如此之快,以至於在大多數情況下,當任務運行太慢時,歸因於應用程序的愚蠢行為,而不是由於缺少優化而導致的。

暫無
暫無

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

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