2014-09-18 6 views
0

내 프로젝트에서 필자는 프로토 타입 버퍼가있는 일반 (윈도우) 소켓을 파이썬으로 직렬화/비 직렬화 메커니즘으로 사용하여 C++ 모듈을 연결했습니다. 이 프로젝트의 요구 사항은 다음과 같습니다. -C++과 python 통신

1) C++ 모듈에는 2 개의 채널이 있습니다. 하나를 통해 그것은 요청을 받아 들일 것이며 파이썬 모듈에 적절한 응답을 보냅니다. 다른 것을 통해 백엔드에서 파이썬 측에 이르는 업데이트를 보낼 것입니다. 2) 오늘 우리는 100 명의 사용자 (즉, 100 명의 사용자에 대한 요청/응답 + 50 바이트 주위의 각 메시지에 대한 업데이트)를 제안합니다.

하지만 나중에 100K 사용자가 제대로 작동하는지 확인하고 싶습니다. 또한 ZMQ를 사용하려고 계획하고 있지만 성능/대기 시간/병목 현상에 대해 많이 알지 못합니다.

누구나 적절한 제안을 주시거나 더 나은 도구가 있다면 알려주십시오.

미리 조언 해 주셔서 감사합니다.

답변

0

IPC를하는 대신 단순히 C++에서 Python을 호출 할 수 있습니다. 파이썬 C API를 사용하거나 Boost.Python을 사용하는 것이 더 쉽습니다. 이것은 응용 프로그램 내에 파이썬을 "임베딩"하는 것으로 불리며, 프로세스간에 불필요한 복사없이 함수를 직접 호출하고 데이터를 전달할 수 있습니다.

+0

어쨌든 몇 가지 이유로 IPC를 사용해야합니다. – ravi

+0

@ravi : 이유는 무엇입니까? 이유를 정당화해야합니다. – smci

+0

완전한 시나리오를 설명해 드리겠습니다. - 지상에서 C++ 모듈 (C# API의 데이터를 가져옴)과 Zango 사이의 통신이 이루어집니다. Zango 서버는 C# API에서 C# API를 요청하고 다시 응답을 보내는 C++의 데이터를 요청합니다. 그래서, 여기에서 방아쇠는 C# API뿐만 아니라 zango (데이터를 요청할 때)가 될 수 있습니다 (업데이트가있을 때 C++ 모듈에 대한 이벤트를 트리거합니다). – ravi

관련 문제