Скорость интернет-соединения против скорости языка программирования для HTTP-запросов?

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

Пока я размышлял над этим, я понял, что, поскольку большинство моих программ будут в основном использовать Интернет (как при реализации API-интерфейсов Google и использовать информацию из них для передачи данных на другие веб-сайты), возможно, скорость языка не имеет значения если скорость моего интернет-соединения всегда будет относительно одинаковой. У меня есть два способа подключения к Интернету: Selenium (или какой-то автоматический браузер) для вещей, которые требуют браузера, и только HTTP-запросы.

Какую разницу я бы увидел между python и другим языком, даже если основное внимание в моих программах уделяется Интернету?

Благодарю.

3

Решение

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

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

Если вы посмотрите на это, вы увидите, что большинство вещей, скажем, 90-99%, являются довольно высокоуровневыми вещами — в Python вы будете использовать API, оптимизированный многими, многими пользователями для оптимальной производительности (то есть времени и времени). пространство). «Открыть файл» будет почти таким же быстрым в C, как и в Python, поэтому он читает из него и передает его какому-нибудь Socket. Преобразование текстовых данных может быть немного быстрее в C ++, чем в Python, но … как быстро это должно быть? Использование, скорее всего, готово подождать 200 мс, не так ли? И это довольно много времени для хорошего высокоуровневого шаблонизатора, чтобы преобразовать немного текста.

Типичный веб-сервис Python гораздо быстрее написать и легче развернуть, чем сервер, написанный на C ++. если ты было бы Делая это в C ++, вы сначала должны обработать сокеты и соединения — и для них либо использовать существующую библиотеку, либо написать свою собственную обработку. Если вы используете существующую библиотеку (которую я настоятельно рекомендую), вы в основном не делаете ничего иначе, чем Python. Если вы пишете свою собственную обработку, у вас есть много, много низкоуровневые вещи, которые вы можете сделать неправильно, которые сожгут желаемую производительность. Нет это не опция.

Если вам нужна скорость, а Python, сервер и фреймворк недостаточно, вам следует переосмыслить свой архитектурный подход. Тогда взгляните на C10K-проблема и написать крошечные кусочки на C. (Посмотрите на это c10k очень горячая тема, тоже) Но я не вижу многих причин не использовать язык высокого уровня, такой как Python, если вы ищете производительность только в средне-сложном веб-приложении.

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

Одно замечание о другом различии между C ++ и Python, не следует забывать: поскольку C ++ действительно скомпилирован и не так динамичен, как Python, вы получите много анализ статических ошибок с помощью Python. Написание правильного кода всегда сложно, но может быть сделано на C ++ и Python с хорошим тесты а также статический анализ — последнее проще в C ++ (мое мнение). Если это проблема для вас, вы можете подумать еще раз, но вы спросили о скорости.

2

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

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector