C ++ против производительности Python на стороне сервера

Я должен разработать сервер, который должен устанавливать множество соединений для получения и отправки небольших файлов. Вопрос в том, стоит ли прирост производительности с C ++ временем, потраченным на разработку кода, или лучше использовать Python и время от времени отлаживать код, чтобы ускорить его. Может быть, это небольшой абстрактный вопрос без указания ряда связей, но я действительно не знаю. Не менее 10 000 соединений в минуту для обновления статуса клиентов.

2

Решение

При таком количестве подключений ваш сервер будет связан с вводом / выводом. Часто упоминаемые различия в скорости между языками, такими как C и C ++, и такими языками, как Python и (скажем) Ruby, заключаются в накладных расходах интерпретатора и бокса, которые замедляют вычисления, а не в область ввода-вывода.

Мало того, что можно использовать разумное и разумное использование параллелизма (как через процессы, так и через потоки, GIL высвобождается во время ввода-вывода и, следовательно, не имеет большого значения для программ, связанных с вводом-выводом), существует также множество асинхронных серверов. Кроме того, веб-серверы в целом имеют гораздо лучшую интеграцию с Python (например, mod_wsgi для Apache), чем C и C ++. Это освобождает вас от написания собственного цикла сервера, управления сокетами и т. Д., Что вы, скорее всего, не сделаете так же, как и основные серверы в любом случае. Это предполагает, что мы говорим о веб-сервисе, а не о чем-то более загадочном, чего Apache и т. Д. Не могут сделать из коробки.

4

Другие решения

Я ожидаю, что время сервера будет зависеть от сети ввода-вывода, диска и т. Д. Вы хотели бы доказать, что использование процессора программой Python проблематично а также что вы поняли все низко висящие плоды процессора, прежде чем рассмотреть изменение.

2