Vollverwaltete .NET-Implementierungen mit gemeinsam genutztem Speicher? [geschlossen]

8

Ich suche nach freien, vollständig verwalteten Implementierungen von Shared Memory für .NET (P / Invoke ist akzeptabel, gemischte C ++ / CLI ist nicht).

    
em70 02.01.2011, 21:54
quelle

3 Antworten

8

Klingt so, als würden Sie nach speicherzugeordneten Dateien suchen, die in der. NET 4.0 BCL.

  

Ab .NET Framework, Version 4, können Sie mithilfe von verwaltetem Code auf Speicherabbilddateien auf dieselbe Weise zugreifen, auf die native Windows-Funktionen auf Speicherabbilddateien zugreifen, wie unter Verwalten von speicherzugeordneten Dateien in Win32 im MSDN beschrieben Bibliothek

    
Richard Szalay 02.01.2011, 22:07
quelle
15

Nun, das .NET-Framework ist kostenlos, empfohlen. .NET 4.0 unterstützt die Namespace-Klassen System.IO.MemoryMappedFiles. Shared Memory ist eine ziemlich drastische Impedanzabweichung mit der Vorstellung eines Garbage Collectors, deshalb dauerte es eine Weile. Wenn Sie keine Zeiger verwenden, ist das Kopieren vom GC-Heap in die MMF-Ansicht unvermeidbar.

Die anderen IPC-Mechanismen verwenden ebenfalls gemeinsam genutzten Speicher, sie sind einfach nicht explizit, da sie in den Kernel integriert sind. Dies alles läuft ungefähr mit der gleichen Geschwindigkeit ab, eine Mikrosekunde zum Einrichten der Abbildung und dann nur die Busbandbreite, um die Kopie von Speicher zu Speicher auszuführen. Fünf Gigabyte pro Sekunde sind die langsamsten, denen Sie begegnen werden.

    
Hans Passant 02.01.2011 22:08
quelle
2

Dieser Artikel erläutert in Abschnitt 3, wie MapViewOfFile und Freunde mit P / Invoke umschlossen werden.

    
Martin v. Löwis 02.01.2011 22:10
quelle

Tags und Links