• Прирост в производительности после переноса алгоритма с Python на C++/C?

    Vindicar
    @Vindicar
    RTFM!
    У тебя вычисление повторяется для каждой строки? Посмотри, можно ли распараллелить код на несколько процессов (именно процессов, не потоков).
    Также посмотри насчёт использования numpy/scipy и их численных солверов для систем уравнений вместо sympy. Может, используя sympy, получится сформулировать алгоритм расчёта, а уже его портировать на numpy?

    Если надумаешь использовать numpy, держи в уме вот что: по возможности выполняй операции сразу над массивами значений. Упрощённо, вот это
    a = numpy.array([3] * 1000000, dtype=numpy.float32)
    b = 2 * a + 3

    будет намного быстрее, чем это:
    a = numpy.array([3] * 1000000, dtype=numpy.float32)
    b = numpy.zeros_like(a)
    for i in range(a.shape[0]):
        b[i] = 2 * a[i] + 3

    Причина простая - операции над массивами реализуют перебор элементов массива нативно, т.е. с той же проивзодительностью, что и C/C++/Fortran. А вот сугубо питоньи циклы - штука медленная.
    Ответ написан
  • Прирост в производительности после переноса алгоритма с Python на C++/C?

    @Everything_is_bad
    Хочется быстрее.
    начни с поиска узких мест и их оптимизации, так же можно попробовать pypy, после этого стоит рассмотреть cython

    Какой ЯП выбрать для изучения
    любой популярный компилируемый

    Во сколько раз ожидать прироста в производительности работы алгоритма
    неизвестно, в активных вычислениях может быть на порядок, но так же всегда можно написать кривую реализацию и только всё замедлить
    Ответ написан
    1 комментарий
  • Подойдет ли backend на python?

    @twistfire92
    Python backend developer
    Если цель - только файлики проверять/собирать, я бы взял FastAPI. Причём, если процесс работы с файлами будет синхронный, то и ендпоинты создавать синхронные, библиотека сама их запуститв отдельных потоках. Связка Django + DRF будет сложна для ознакомления новичку, да и много лишнего с собой несёт, чем пользоваться вы не будете.

    Опять же смотря что называть сайтом. Если это отдельное frontend приложение, где от вас требуется только API, то да. Если же и пользовательский визуал в зоне вашей ответственности, то Django. Хотя и FastAPI с шаблонами работать умеет.
    Ответ написан
    2 комментария
  • Подойдет ли backend на python?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    В этой постановке выглядит так, что подойдёт любой язык программирования и любой фреймворк.
    Ответ написан
    1 комментарий
  • Подойдет ли backend на python?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    какой фреймворк для подобной проблемы

    Django + DRF/Ninja + Nginx.
    Слышал про GIL, но не знаю, будут ли из-за него трудности.

    При средних нагрузках - будут, но обходится это относительно не сложно (многопроцессорность или внешние библиотеки). При больших нагрузках Python не используют.
    Справится ли этот backend с нагрузкой до 1000 запущенных процессов (операций работы с файлами, обрабатываемых на сервере единовременно)?

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

    Если есть сомнения в Ваших возможностях, то Java или Go справятся с этой задачей лучше.

    Но с другой стороны, Python позволит быстро написать MVP, а узкие места потом всегда можно переписать на Go.
    Ответ написан
    4 комментария