Обновить
1
Ilya Biin@mohtep

╰(*°▽°*)╯

1
Подписчики
Отправить сообщение

Хорошо, сделаю :)
Есть какие-то конкретные нюансы, которые интересны? или технологию в-общем?

Бенчмарк для го написан совершенно неверно. Чтобы не расходовать стек под горутины их надо "приземлять". Если будут запросы - покажу как этот код надо переделать для миллиона потоков.

Увы. Ваше предложение корректно, но только в случае, если память бесконечна. То есть мы должны вычитать объем данных предназначавшихся для неактивного воркера. Если этот объем велик, то мы достаточно агрессивно начнем тратить хип.
И еще с созданными специально для этой цели Aerospike, Cassandra, Couchbase.
Можно. Конечно, как и с любыми инструментами, есть нюансы.

Интерпретатор python весьма нетороплив. Поэтому использовать его для систем, где большое число вычислений на CPU, не самое хорошее решение. Однако большинство проектов сбалансированны по нагрузке. И значительную часть времени проводят в IO. Для таких проектов скорость разработки, которую предоставляет python, с лихвой компенсирует неторопливость.

К тому же всегда есть несколько хороших способов избавится от бутылочного горлышка в коде.
Первая и самая ступень оптимизации — профайлинг. Практика показала, что 9/10 проблем исчезали после изучения тормозного кода. Его удавалось переписать.

Если же оптимизировать какой-то код нельзя ну никак, тогда в дело вступают модули на C.

Для проектов которые пишутся с нуля, есть очень хороший совет — использовать в качестве интерпретатора pypy. На нашем коде он дает выигрыш от 6 до 10 раз. Но разборчив к используемым библиотекам.

Из моих любимых рецептов:
1 — Используйте легкие потоки ( eventlet, greenlet ), они практически бесплатны по оверхеду и помогают грамотно распоряжаться временем CPU, избегая простоев
2 — По возможности используйте написанные на C расширения, например, msgpack для сериализации. Это быстро.
3 — ORM это медленно. Особенно django. Старайтесь не злоупотреблять им.
4 — Единственный стоящий профайлер для python, на мой взгляд, это statprof. Он вносит минимальные искажения в измеряемые участки.
5 — Если нужна параррельность по CPU — единственный выход это mutiprocessing. Треды в питоне неэффективны из-за GIL.
Python и производительность ( узкие места, различные типы параллельности, горизонтальное маштабирование, виды cpu профайлинга )
На самом деле, оценить себестоимость смс сообщения для оператора гораздо проще, чем вам кажется.
Крупные клиенты ( в том числе всеми любимые контент провайдеры ) покупают смс по тарифу 6 копеек за штуку. Можно взять это значение как верхнюю оценку себестоимости.

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность

Специализация

Бэкенд разработчик, Системный инженер
Docker
Git
Linux
Python
Golang
Высоконагруженные системы
Kubernetes
AWS
Redis