TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #198 · 6 јан.

Первая директория в sys.path 🔸 Когда вы запускаете Python-интерпретатор в интерактивном режиме, в системные пути (sys.path) в самое начало добавляется текущая рабочая директория >>> for path in sys.path: ... print(f'"{path}"') "" "/usr/lib/python37.zip" "/usr/lib/python3.7" ... Первая строка пустая, что и означает текущую рабочую директорию. 🔸 Если вы запускаете интерпретатор передавая скрипт как аргумент, то история получается иная. На первом месте будет директория в которой располагается скрипт. А текущая рабочая директория игнорируется. Пишем скрипт с таким содержанием: # script.py import sys for path in sys.path: print(f'"{path}"') Запускаем python3 /home/user/dev/script.py Получаем "/home/user/dev" "/usr/lib/python37.zip" "/usr/lib/python3.7" ... 🔸 Если вы запускаете скрипт по имени модуля то на первом месте будет домашняя директория текущего юзера python3 -m script "/home/user" "/usr/lib/python37.zip" "/usr/lib/python3.7" ... Скрипт должен быть доступен для импорта На что это влияет? На видимость модулей для импорта. Если вы ждёте, что, запустив скрипт по пути, сможете импортировать модули из текущей рабочей директории, то вы ошибаетесь. Придётся добавлять путь os.getcwd() в sys.path самостоятельно или заранее объявлять переменную PYTHONPATH. #basic

Hashtags

Резултати

Пронајдени 1 слични објави

Пребарај: #llvm

当前筛选 #llvm清除筛选
Android Broadcast

@android_broadcast · Post #9894 · 17.03.2026 г., 05:32

🤖Google ускорила ядро Android, скормив компилятору профили реального использования Команда LLVM toolchain в Google рассказала, как они применили AutoFDO (Automatic Feedback-Directed Optimization) к ядру Android — и результаты интересные. Идея простая: обычный компилятор принимает решения об оптимизациях на основе статических эвристик. Встроить функцию или нет, какая ветка условия чаще выполняется — всё это угадывается без реальных данных из приложений и пользовательских сценариев. AutoFDO меняет подход: компилятор получает профили реального выполнения кода и на их основе принимает куда более точные решения. Эта техника Google уже давно применяется к своей серверной инфраструктуре и ChromeOS, так что подход обкатанный и зарекомендовавший себя. Кто знаком с ART Profiles — идея покажется знакомой. Там тот же принцип: собираем данные о реальном выполнении, отдаём компилятору, получаем более точный нативный код. Только ART Profiles работают на уровне ART для Java/Kotlin-кода конкретного приложения, а AutoFDO — на уровне ядра, C/C++ и LLVM. Разные слои, одна философия. Для ядра профили собирают не с реальных устройств, а в лабораторных условиях: запускают топ-100 самых популярных приложений, используют simpleperf и аппаратные возможности ARM для записи истории ветвлений. Собранные данные показывают 85% совпадение с профилями реального парка устройств — этого достаточно, чтобы считать подход рабочим. Результаты на ядрах 6.1, 6.6 и 6.12: 👉 холодный старт приложений стал быстрее на ~4% 👉 время загрузки сократилось на ~1% 👉 ядро занимает ~40% CPU-времени на Android, так что любая оптимизация здесь ощутима Важный момент: AutoFDO не меняет логику кода, только влияет на решения компилятора — инлайнинг, раскладку кода. Функции, которые не попали в профили («холодные»), компилируются стандартным образом, без изменений. Сейчас это уже в проде — профили включены в ветки android15-6.6 и android16-6.12, так что устройства на этих ядрах уже собираются с AutoFDO. Pixel-устройства точно попадают в эту категорию. С другими производителями сложнее: многие используют сильно модифицированное ядро и не переходят на GKI из AOSP, так что там это может быть не применено вовсе. В планах — GKI-модули, вендорные модули через DDK и поддержка новых версий ядра. 🔗 Источник - блог Android Developers #Android#AndroidDev#Производительность#LLVM#Native