Embedding Python into C++ application in a multi-threaded/concurrent environment?

Abierto
#409 3 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
15/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
cpp, python
Área
backend

Línea de trabajo

Esta es una pregunta de uso sobre la integración de Python en una aplicación C++, en la que se mencionan Boost.Process, Boost.Python, FastCGI y la ejecución con hilos, pero no se han identificado archivos del repositorio ni pruebas. Primero hay que aclarar qué comportamiento de integración compatible se solicita; una contribución requeriría un alcance concreto y una definición de terminado acordada.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

I am able to use Boost.Process to successfully execute a Python script from within a C++ application. The C++ app can obtain the data returned by Python and this is very trivial.

The problem is performance. Creating a new process needed to execute the Python script is very expensive, e.g. 60ms on a mid-level desktop Windows PC. I have not tested on Linux yet but I'm sure that there will still be a performance hit for each process.

Things that have come to mind:

  • fastcgi for python
  • execute python scripts concurrently in different threads (obviously without creating a new process for each script as I do at this time)

Can Boost.Python help me with either of these ideas? I've seen older posts online and people seem to give up with the concurrency method. Please advise, thank you.

Lenguaje dominante
C++
Estrellas
537
Forks
223
Merge medio
11 h 22 min
PR fusionados (30 d)
2

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de boostorg/python

Todos los issues de boostorg/python

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.