Mam 2 podstawy kodu, jeden w python, jeden w C++. Chcę udostępniać dane w czasie rzeczywistym między nimi. Staram się ocenić, która opcja będzie najlepsza dla mojego konkretnego przypadku użycia:Udostępnianie informacji między kodem Pythona a kodem C++ (IPC)
- wielu małych aktualizacji danych z programu C++ do programu Pythona
- oboje prowadzony na tej samej maszynie
- niezawodność jest ważne
- niskiej latencji jest miło mieć
widzę kilka możliwości:
- Jeden proces zapisuje do pliku płaskiego, drugi proces go odczytuje. Jest nieskalowalny, powolny i podatny na błędy we/wy.
- Jeden proces zapisuje do bazy danych, drugi proces odczytuje. Dzięki temu jest bardziej skalowalny, nieco mniej podatny na błędy, ale wciąż bardzo wolny.
- Osadź mój program python w C++ lub na odwrót. Odrzuciłem to rozwiązanie, ponieważ obie podstawy kodu są dość skomplikowane i wolałem je oddzielać ze względu na łatwość utrzymania.
- Używam niektórych gniazd w obu programach i wysyłam wiadomości bezpośrednio. Wydaje się, że jest to rozsądne podejście, ale nie wykorzystuje faktu, że znajdują się one na tym samym komputerze (zostanie on zoptymalizowany pod kątem użycia lokalnego hosta jako miejsca docelowego, ale nadal jest uciążliwy).
- Użyj pamięci współdzielonej. Do tej pory uważam, że jest to najbardziej satysfakcjonujące rozwiązanie, jakie znalazłem, ale ma tę wadę, że jest nieco bardziej skomplikowane do wdrożenia.
Czy są inne rozwiązania, które powinienem wziąć pod uwagę?
Bezpośrednio przy użyciu kodu Python/C++ z C++/Python? –
RESTful API powinno ci pomóc, doskonały język niezależny api – AlokThakur
@Revolver_Ocelot, Posiadam 2 podstawy kodu, więc tak, mogę użyć kodu bezpośrednio w każdym. – DevShark