簡體   English   中英

ram中的共享內存或命名管道?

[英]Shared memory or named pipes in ram?

我想在兩個不同的程序之間進行通信。 一個改裝的流光溢彩程序,輸出有關信息和我自己的程序,讀取此信息。

我讀到了命名管道和共享內存。 但對我來說,目前還不清楚數據的存儲位置。 由於我將交換大量數據,我不想每次都將這些數據寫入磁盤。 我正在使用覆盆子Pi,SD卡應該可以使用更長的時間;)

所以基本的問題是:用什么方法可以在不寫入磁盤的情況下將信息交換到另一端? 我不確定共享內存是否寫入ram,我想明確這一點。 我讀到的另一個想法是/ dev / shm,它應該是一個ram磁盤。 我是否也可以在此位置使用命名管道,而不是保存在ram中的信息?

什么是最好的方式去? 謝謝 :)

我讀到了命名管道和共享內存。 但對我來說,目前還不清楚數據的存儲位置。

在這兩種情況下,數據都存儲在內存中(命名管道看起來就像它們駐留在文件系統上,但實際數據存儲在內存中)。

什么方法更好,這取決於實際應用。 管道具有相當有限的緩沖區(最可能是64kb ),並且當緩沖區已滿時,寫入將阻塞。 共享內存可以任意大,但在不利方面,共享內存就像那樣 - 普通內存。 你必須自己照顧同步等。

共享內存和命名管道(以及unix域套接字)IPC將不會寫入您的SD卡,除非您分配的內存超過256MB或512MB的可用物理RAM,具體取決於您的raspberrypi模型。 如果你這樣做,它將開始交換,並可能會放慢速度。

暫無
暫無

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

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