Estou lendo dados financeiros do meu corretor emem tempo real através de uma API Websocket. O cliente é escrito em Python. Eu tenho outro programa C ++ que lê esses dados, mas a maneira como estou me comunicando com o script python é através de um arquivo de texto físico.
Minhas perguntas são ...
1) Reescrever constantemente o arquivo de texto, abrindo, lendo e fechando sempre que afeta o desempenho? Em caso afirmativo, qual é a melhor maneira de fazer isso? O desempenho no meu aplicativo é crucial.
2) Usar pipes nomeados seria uma opção melhor? Ou isso é praticamente o mesmo que escrever e ler em um arquivo de texto?
Respostas:
3 para resposta № 1OS modernos suportam muitos IPC. Canos, pipes nomeados, soquetes, memória mapeadaarquivos, ... A escolha de uma solução ou de outra depende muito do seu aplicativo. Mas, em termos gerais, todos eles devem ser "melhores" do que usar um arquivo antigo simples.
Como o IPC são objetos gerenciados pelo sistema operacional, eles são não depende do idioma usado para escrever ovários processos. Alguns IPC têm um arquivo semântico (pipes, pipes nomeados). Outros requerem o uso de alguma primitiva de sistema dedicada (mmap). Mas C ++ e Python (e muitas outras linguagens) suportam a chamada de sistema necessária. De fato, os IPC são ótimo para ajudar softwares escritos em diferentes idiomas a falarem juntos.