Как стать автором
Обновить

Комментарии 8

Asyncio и конкурентное программирование на Python

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

можно в процессе ее прочтения еще подкрепляться серией роликов Олега Молчанова по асинхронщине

Пишите на VBA - он в 4-12 раз быстрее Питона.

Пруфы тут: https://github.com/lkno0705/MatrixMultiplication/pull/32

и тут: https://stackoverflow.com/questions/30045508/python-loop-slower-than-excel-vba

@Burumburum: Отвалилась возможность ввода ссылок (выделил текст, нажал на кнопку вставки ссылок и загрузил ссылку).

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

Извините, если смутил. У Вас сильная первая статья, примите мои поздравления!

На самом деле каждому своё. Кому-то нравится Питон, кто-то повседневную рутину быстрее напишет на C++, а вот я фанат VBA.

У Питона перед Экселем только два преимущества - огромная поддержка огромного сообщества (для VBA придётся долго искать нужный AddOn в сети, так что порой проще написать самому) и Jupyter Notebook (в принципе, Эксель с VBA это тот же самый ноутбук (с 93 года!), но на веб-страничке его не резместишь, Гит не покажет изменения в нём, так что в этом смысле Эксель проигрывает).

Для арифметики и циклов вообще лучше Numpy (с векторизацией вычислений) или Numba использовать.

from numba import njit

@njit
def count_numba(count_to: int) -> int:
    counter = 0
    while counter < count_to:
        counter = counter + 1
    return counter

Или к примеру, в порядке изврата:

import numpy as np

counter = np.sum(np.ones(count_to))

И то и другое посчитается за доли секунды. Во втором случае - ещё и вместе с созданием массива из единиц.

Согласен, так как библиотека, написана на C, то она спокойно справляется с этой задачей)

Хороший пример оптимизации

А там где нужна действительно многопоточка — переписать на какой-то другой язык.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории