Was ist der schnell genug Weg (ca. 40 ~ 50Hz), um große Daten (RGB-Bilddaten: 320 * 240 * 3) von C++ - Prozess zu Python-Prozess (und kleine Größe von Float-Daten von Python zu C++) unter Linux zu senden? Hinweis: Die beiden Prozesse laufen auf demselben PC.Wie kann man unter Linux große Datenmengen von C++ an Python senden?
I haben versucht:
- UDP
- Shared Memory
Für UDP:
die Nachricht gesendet werden soll, größer ist als die UDP-Nachricht constrain (65535), so direkt mit sendto()
wird Fehler erhalten: Nachricht zu lang. Und ich bezweifle auch, ob es ein schneller Weg ist (ca. 40 ~ 50Hz ist in Ordnung).
Für Shared Memory:
Shared Memory scheint eine schnelle Art und Weise zu sein Bild von c zu senden ++ C++. Aber da es in Python keinen Zeiger gibt, finde ich keine Möglichkeit, Daten im Shared Memory zu lesen und zu schreiben.
Also gibt es eine schnelle Möglichkeit, IPC Dinge oben zu tun? Oder vielleicht eine gute Möglichkeit zu lesen und zu schreiben unsigned char und Float Typ Werte auf gemeinsam genutzten Speicher in Python?
Sie senden nicht alle Daten auf einmal. Sie senden es in Stücke. Nehmen wir an, Sie haben 5 GB Daten zum Senden. Sie senden die 5 GB Daten nicht auf einmal, viel sinnlos sowieso. Auch wenn Ihre Daten wichtig sind und Sie nichts davon verlieren können, dann gehen Sie mit TCP statt UDP. – Bauss
Hertz ist keine Einheit des Durchsatzes. Meinst du, du willst 320 * 240 * 3 Oktette Daten senden, 50 mal pro Sekunde (10,98 MiBps oder so) über IPC? –
@MichaelFouarakis Ja, ich möchte unsigned char Typ 320 * 240 * 3 Daten über 40 ~ 50 Mal pro Sekunde senden. –