Comments 11
Для чего #define PY_SSIZE_T_CLEAN ?
Макрос PY_SSIZE_T_CLEAN определяется перед импортом Python.h для правильного типа размера данных. Если определен макрос PY_SSIZE_T_CLEAN то тип размера данных будет Py_ssize_t, иначе int. Это особенно важно на 64 битных системах, где размер данных может превышать 2**31. Подробнее об этом Parsing arguments and building values первое примечание.
Крутая статья. А можно До / После для наглядности?
А wasm модули собирать не пробовали? Или на расте либу написать?
Написать расширение для Python на ассемблере ? Да, пожалуй это можно, но потребуется выполнить требования Python API, а так почему бы нет ?
Про Rust к сожалению, ничего не могу сказать, я сам с ним знаком на уровне Hello world.
Не совсем. Написать библиотеку на том же Си без ограничений на Python - ни тебе с GC возиться, ни типы не прокидывать. Библиотека компилируется в wasm-модуль и из питона подключается что-то типа
from wasm import vm # название вымышлено, реальная либа звалась иначе
lib = vm.loadlib('hasher')
lib.sha256(input())
Теоретически скорость должна быть на уровне нативного кода, за исключением накладных расходов на передачу данных между wasm и python.
Есть некоторая начальная строка, нам необходимо добавить к ней один или несколько случайно выбранных символов из заданного набора, чтобы хеш полной строки имел особый вид. В нашем конкретном случае будем использовать sha256
Рисёчеры в МТС работают над перебором ключей к биткойн-кошелькам? ))
Есть же Cython, чего не юзаете?
Как ускорить Python с помощью C-расширений. Часть 1