Высокая производительность: вызывать ли методы C ++ непосредственно из бэкэнда Python? - PullRequest
2 голосов
/ 25 мая 2011

Мой Python-сервер ( Django ) должен запросить библиотеку C ++ для получения результата (с помощью модуля ctypes ).

вызывать метод C ++ напрямую?Или, может быть, мне нужен промежуточный менеджер потоков , который запускает новый поток, когда скрипт python хочет получить результат?

1 Ответ

2 голосов
/ 25 мая 2011

По сути, вы должны решить, какой тип потока операций вы хотите.Если вы предпочитаете синхронную обработку, вы можете вызывать свой метод напрямую, если вы предпочитаете асинхронную обработку, вам понадобится промежуточное решение.

Однако вы должны знать, что при вызове подпрограммы C ++ непосредственно формируйте свое приложение Djangoвызов заканчивается в пути выполнения, который запускается через веб-приложение.Если обработка занимает больше времени, чем вы ожидаете, система управления заданиями будет лучшим выбором.

В любом случае, я бы порекомендовал такое решение, если выполнение вашей подпрограммы C ++ занимает слишком много времени.Затем вы можете использовать опрос, чтобы дождаться готовности результата, например, с помощью веб-сокетов.

...