簡體   English   中英

沒有內存映射文件的共享內存

[英]Shared memory without memory-mapped files

是否可以在兩個MFC C ++應用程序之間共享內存而不使用內存映射文件 當前,我們正在使用此方法來共享結構,對於我們的要求而言,它太慢了。 有沒有更好的辦法?

您確定是內存映射文件很慢嗎? 操作系統將同一塊RAM映射到兩個進程空間中(在被分頁時)。導致性能問題的其他原因可能是互斥體和其他同步原語/易失性讀取以及緩存無效,以將並發的更改傳播到進程之間的內存中。

您可以嘗試在本地對非共享區域進行更改,然后將其批量復制,而不是重復寫入共享內存。

其他替代方法是消息傳遞,RPC或DCOM,但我懷疑它們是否會更具性能,尤其是在要傳輸/引用的數據量很大的情況下。

我以為,一旦您建立了內存映射(使用MapViewOfFile),那將會非常快。

實際設置映射的內存而不是在設置之后立即使用它,是否會帶來性能問題?

如果確實確實存在內存映射文件的已驗證問題,則這是另一種技術: http : //msdn.microsoft.com/zh-cn/library/h90dkhs0%28VS.80%29.aspx (DLL共享內存段) ,但我懷疑這真的會對您有所幫助。

暫無
暫無

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

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