и посмотреть медиа
Zen of Python - дзен
и посмотреть медиа
Полный гид по философии и практике Python в одном канале.
Полный гид по философии и практике Python в одном канале.
Zen of Python - канал, посвящённый философии и практикам Python. Уроки, скрипты, лучшие практики и материалы для освоения языка в Telegram.
Разбор HTML-страницы за 272 микросекунды вместо 15,3 миллисекунды Бернат Габор собрал turbohtml, набор инструментов для HTML целиком на C: экранирование, разэкранирование, токенизация, запросы по селекторам, сериализация и операции с URL. Разбор страницы на 92 КБ занимает 272 мкс против 15,3 мс у BeautifulSoup, запрос по селектору 1,3 мкс против 20,8 мкс у lxml и 99,9 мкс у BeautifulSoup, токенизация 34,9 мкс против 435 мкс у html.parser и 836 мкс у html5lib. На плотном четырёхмегабайтном тексте escape отрабатывает за 4,98 мс против 12,7 мс у html.escape. Публикация от 18 июня обновлена 10 июля. Скорость складывается из того, как обрабатываются байты. Обычный код ищет спецсимволы посимвольно, и процессор на каждом байте выполняет ветвление. Здесь байты обрабатываются пачками: SWAR складывает восемь байт в одно машинное слово и проверяет их арифметикой, SIMD делает то же самое сразу по шестнадцать байт одной инструкцией. Ветвлений в горячем цикле почти не остаётся. 🔘 длина результата сначала считается точно, потом выделяется одним куском и заполняется массовым копированием, вместо дописывания по мере разбора; 🔘 токенизатор сохраняет исходную ширину строки и компилируется в три варианта под UCS-1, UCS-2 и UCS-4; 🔘 чистые текстовые куски возвращаются как срезы без копирования, копия делается только когда она правда нужна; 🔘 переписывание css_path() с квадратичного перебора на индекс сократило пример со 112 мс до 0,9 мс; 🔘 список переиспользуемых обёрток ускорил find_all() с 1,9 до 1,4 мкс, но в сборке без GIL он отключён. Автор оговаривает, что Callgrind считает инструкции, а не реальное время по часам, поэтому на него опираются только при сравнении вариантов. Корректность проверяется побайтовым сравнением с эталонными библиотеками, сборками с ASan и UBSan и фаззингом. Что у вас парсит HTML в проде и сколько времени на это уходит? @zen_of_python
Открыть канал и посмотреть медиаSolo los usuarios registrados pueden compartir su opinión.
¡Sé el primero en compartir tu experiencia con este recurso!
Botón de Telegram para la activación instantánea de servicios vía OTP. Una herramienta fiable para la verificación y registro de cuentas.
Drew ChannelGrimesVideo, entretenimiento e interesante contenido desde 2014.
Ganancias canalUSDTand cripta. Esquemas, consejos y formas actuales de monetización en Telegram.