2016-03-20 38 views
1

Ich habe eine Anwendung in C++, die Daten verarbeitet. Lassen Sie uns sagen:C++ - Speicher beibehalten, nachdem App geschlossen wurde

download dataA - run app to process A 
download dataB - run app to process B 
... 

Jetzt habe ich in B laufen müssen Zugang zu Daten von A. erzeugt habe ich sie in einer temporären Datei oder DB speichern kann, aber es Dinge verlangsamt. Gibt es eine Möglichkeit, die Ausgabe von A im Speicher zu erhalten und in B wieder zu öffnen?

Ich kann keine Daten herunterladen und dann die App ausführen, es ist eine serielle Verarbeitung.

+0

Können Sie auf die Ausarbeitung "Aber es verlangsamt die Dinge" bisschen? Über wie viele Daten sprechen wir? Was * Art * von Daten? Und wenn es "serial processing" ist, haben Sie sich Gedanken über die Verwendung von Pipes und normalen Standard Output/Input gemacht? –

+0

Es ist etwa 10 GB Daten, 2D-Matrix von Floats –

+0

Dann, wenn Sie mindestens 10 GB oder Speicher verfügbar haben, gibt es wirklich keine Möglichkeit, Dateien zu verwenden. –

Antwort

1

Es hängt vom Betriebssystem ab. Unter Linux können Sie die Daten im Shared Memory speichern, was auch dann persistent ist, wenn keine Anwendungen sie verwenden. Unter Windows gibt es auch Shared Memory, aber es wird automatisch zurückgewonnen, wenn keine Anwendungen es benutzen. Sobald das Programm A endet, gehen die Daten verloren.

Verwandte Themen