Профилирование Python — почему и где тормозит ваш код
Представьте ситуацию: вы написали скрипт для обработки каких-то данных на ноутбуке, ушли попить кофе, а когда пятнадцать минут спустя вернулись, завершилось едва ли 10%.
Почему скрипт работает так медленно? Какая его часть тормозит? Дело в чтении данных, их обработке или сохранении? Как ускорить исполнение? Действительно ли скрипт вообще медленный?
Ответить на все эти вопросы поможет инструмент под названием «профилировщик» (profiler).
Rus https://habr.com/ru/companies/ruvds/articles/757336/
Eng https://betterprogramming.pub/python-profiling-why-and-where-your-code-is-slow-d6f41601dba8
Представьте ситуацию: вы написали скрипт для обработки каких-то данных на ноутбуке, ушли попить кофе, а когда пятнадцать минут спустя вернулись, завершилось едва ли 10%.
Почему скрипт работает так медленно? Какая его часть тормозит? Дело в чтении данных, их обработке или сохранении? Как ускорить исполнение? Действительно ли скрипт вообще медленный?
Ответить на все эти вопросы поможет инструмент под названием «профилировщик» (profiler).
Rus https://habr.com/ru/companies/ruvds/articles/757336/
Eng https://betterprogramming.pub/python-profiling-why-and-where-your-code-is-slow-d6f41601dba8
В Linux Logical Volume Manager (LVM) - это система управления хранением данных, которая обеспечивает более гибкий подход к управлению дисковым хранилищем, чем традиционное разбиение на разделы. LVM работает за счет создания уровня абстракции между физическими устройствами хранения и файловой системой, позволяя создавать логические тома, которые могут охватывать несколько физических дисков.
С помощью LVM вы можете создавать группы томов из одного или нескольких физических дисков, а затем создавать логические тома в этих группах томов. Логические тома ведут себя как традиционные разделы диска, но у них есть несколько преимуществ:
- Размер логических томов можно динамически изменять в режиме онлайн, без необходимости размонтирования файловых систем или перезагрузки системы. Такая гибкость позволяет адаптироваться к меняющимся потребностям в хранении данных без простоев.
- Логические тома можно легко расширить, добавив в группу томов дополнительные физические диски. Такая масштабируемость позволяет увеличив...
С помощью LVM вы можете создавать группы томов из одного или нескольких физических дисков, а затем создавать логические тома в этих группах томов. Логические тома ведут себя как традиционные разделы диска, но у них есть несколько преимуществ:
- Размер логических томов можно динамически изменять в режиме онлайн, без необходимости размонтирования файловых систем или перезагрузки системы. Такая гибкость позволяет адаптироваться к меняющимся потребностям в хранении данных без простоев.
- Логические тома можно легко расширить, добавив в группу томов дополнительные физические диски. Такая масштабируемость позволяет увеличив...
❓Как долго может работать ваше приложение на PHP?
Чувствуете ограниченность PHP в долгосрочной перспективе?
9 июля в 20:00 мск узнайте, как ваш PHP-код может работать дольше простого HTTP-запроса, обрабатывая данные для интеграции с партнерами или реагируя на события системы в реальном времени.
🔮На вебинаре вы узнаете:
- какие классы задач могут решать долгоживущие приложения на PHP;
- какие инструменты и средства доступны для реализации этих задач;
- как правильно организовать работу приложений на PHP, чтобы избежать проблем с памятью;
- когда стоит рассматривать расширение стека и использовать другие языки программирования.
Спикер Александр Пряхин — технический руководитель юнита в Авито и опытный преподаватель.
🎁Регистрируйтесь на урок и получите подарок участника чек-лист «SOLID и типичные ошибки на собеседованиях»: https://vk.cc/cyeeU2
Чувствуете ограниченность PHP в долгосрочной перспективе?
9 июля в 20:00 мск узнайте, как ваш PHP-код может работать дольше простого HTTP-запроса, обрабатывая данные для интеграции с партнерами или реагируя на события системы в реальном времени.
🔮На вебинаре вы узнаете:
- какие классы задач могут решать долгоживущие приложения на PHP;
- какие инструменты и средства доступны для реализации этих задач;
- как правильно организовать работу приложений на PHP, чтобы избежать проблем с памятью;
- когда стоит рассматривать расширение стека и использовать другие языки программирования.
Спикер Александр Пряхин — технический руководитель юнита в Авито и опытный преподаватель.
🎁Регистрируйтесь на урок и получите подарок участника чек-лист «SOLID и типичные ошибки на собеседованиях»: https://vk.cc/cyeeU2
Многообразие связных списков
Связный список — классическая структура данных, которая позволяет быстрые вставки/удаления, но при этом просаживает другие операции (случайный доступ к элементу). Мы пройдёмся от базовой реализации до других возможных вариаций этой структуры данных и, надеюсь, вместе узнаем что-то новое. Краем глаза увидим возможные применения связных списков. И в конце, для любителей C++, бонус: использование связного списка для сбора диагностики использования динамической памяти в вашем коде.
https://habr.com/ru/articles/814955/
Связный список — классическая структура данных, которая позволяет быстрые вставки/удаления, но при этом просаживает другие операции (случайный доступ к элементу). Мы пройдёмся от базовой реализации до других возможных вариаций этой структуры данных и, надеюсь, вместе узнаем что-то новое. Краем глаза увидим возможные применения связных списков. И в конце, для любителей C++, бонус: использование связного списка для сбора диагностики использования динамической памяти в вашем коде.
https://habr.com/ru/articles/814955/
Media is too big
VIEW IN TELEGRAM
Эффективное использование памяти во встраиваемых системах
Алексей Алешкин (ИнфоТеКС)
Отличительная особенность разработки ПО для встраиваемых систем — ограниченность доступной памяти. Применение С++ значительно повышает скорость разработки, однако ухудшает прозрачность управления памятью и нефункциональные характеристики кода. Эти побочные эффекты зачастую приводят к понижению потребительских качеств продукта, ухудшению стабильности его работы или даже к невозможности реализации проекта на заданной платформе.
В процессе разработки проекта SIES Core команда Алексея столкнулась со всеми перечисленными побочными эффектами, что потребовало глубоких долгих исследований, результатами которых он поделился с аудиторией.
Доклад будет интересен разработчикам backend и embedded, создающим ПО с использованием С++ на недорогих платформах с ограниченным объемом памяти и отсутствием MMU.
Технологии: аллокаторы, MMU, Semihosting FS, GCC, GDB, OpenOCD.
источник
Алексей Алешкин (ИнфоТеКС)
Отличительная особенность разработки ПО для встраиваемых систем — ограниченность доступной памяти. Применение С++ значительно повышает скорость разработки, однако ухудшает прозрачность управления памятью и нефункциональные характеристики кода. Эти побочные эффекты зачастую приводят к понижению потребительских качеств продукта, ухудшению стабильности его работы или даже к невозможности реализации проекта на заданной платформе.
В процессе разработки проекта SIES Core команда Алексея столкнулась со всеми перечисленными побочными эффектами, что потребовало глубоких долгих исследований, результатами которых он поделился с аудиторией.
Доклад будет интересен разработчикам backend и embedded, создающим ПО с использованием С++ на недорогих платформах с ограниченным объемом памяти и отсутствием MMU.
Технологии: аллокаторы, MMU, Semihosting FS, GCC, GDB, OpenOCD.
источник
Реверс-инжиниринг умных часов
Недавно в моём распоряжении оказалась партия умных часов с поддержкой геолокации, которые после тестирования были отправлены в резерв. Мне было поручено найти применение для этих девайсов, с чего и началась история их реверс-инжиниринга, о которой я поведаю в этой статье.
Начну я с рассмотрения их внешних особенностей и схемы, после чего подробно расскажу о том, как перепрограммировал эти часы, в том числе пропатчив их под иные задачи.
https://habr.com/ru/companies/ruvds/articles/827958/
Недавно в моём распоряжении оказалась партия умных часов с поддержкой геолокации, которые после тестирования были отправлены в резерв. Мне было поручено найти применение для этих девайсов, с чего и началась история их реверс-инжиниринга, о которой я поведаю в этой статье.
Начну я с рассмотрения их внешних особенностей и схемы, после чего подробно расскажу о том, как перепрограммировал эти часы, в том числе пропатчив их под иные задачи.
https://habr.com/ru/companies/ruvds/articles/827958/
Как работает Docker?
Архитектура Docker состоит из трех основных компонентов:
🔹 Docker Client
Это интерфейс, через который взаимодействуют пользователи. Он взаимодействует с Docker daemon.
🔹 Docker Host
Здесь Docker daemon принимает запросы Docker API и управляет различными объектами Docker, включая образы, контейнеры, сети и тома.
🔹 Docker Registry
Здесь хранятся образы Docker. Docker Hub, например, является широко используемым public registry.
Архитектура Docker состоит из трех основных компонентов:
🔹 Docker Client
Это интерфейс, через который взаимодействуют пользователи. Он взаимодействует с Docker daemon.
🔹 Docker Host
Здесь Docker daemon принимает запросы Docker API и управляет различными объектами Docker, включая образы, контейнеры, сети и тома.
🔹 Docker Registry
Здесь хранятся образы Docker. Docker Hub, например, является широко используемым public registry.
Использование брокера сообщений Apache Kafka в распределенных очередях
24 июля в 20:00 мск
❓Хотите узнать, как эффективно управлять сообщениями в масштабируемых распределенных системах? Тогда этот открытый вебинар для вас!
Мы разберем основы и архитектуру Apache Kafka, принципы работы с распределенными очередями, а также научимся настраивать и развертывать кластер Kafka в Docker. Вы увидите реальные примеры использования Kafka для обмена сообщениями между сервисами и узнаете о лучших практиках и рекомендациях по интеграции Kafka в ваши проекты.
💻 Урок будет полезен Fullstack и Backend-разработчикам, DevOps-инженерам, архитекторам ПО и администраторам систем, а также всем, кто хочет углубить свои знания об Apache Kafka и его применении.
🔴 Регистрация открыта: https://vk.cc/cyu2Qp
24 июля в 20:00 мск
❓Хотите узнать, как эффективно управлять сообщениями в масштабируемых распределенных системах? Тогда этот открытый вебинар для вас!
Мы разберем основы и архитектуру Apache Kafka, принципы работы с распределенными очередями, а также научимся настраивать и развертывать кластер Kafka в Docker. Вы увидите реальные примеры использования Kafka для обмена сообщениями между сервисами и узнаете о лучших практиках и рекомендациях по интеграции Kafka в ваши проекты.
💻 Урок будет полезен Fullstack и Backend-разработчикам, DevOps-инженерам, архитекторам ПО и администраторам систем, а также всем, кто хочет углубить свои знания об Apache Kafka и его применении.
🔴 Регистрация открыта: https://vk.cc/cyu2Qp
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576Неуязвимого кода не существует. Абсолютно защищённых данных – тоже.
Зато есть способы восстановить информацию после серьёзного сбоя или атаки.
Именно о способах восстановления повреждённых данных мы и поговорим на открытом вебинаре «Создаём бэкапы для Ethereum-блокчейна на Rust»
Вы познакомитесь с принципами хранения и развития данных в блокчейн-системах, увидите, как с помощью Rust эффективно переиспользовать код для разных задач на разных целевых платформах.
Вебинар проведёт Кирилл Федченко, опытный программист на Rust, Python, C++.
Будет интересно и Rust-разработчикам и тем, кто использует другие языки.
23 июля, 19:00 МСК
Бесплатно
➡️ Записаться на событие: https://vk.cc/cyy4yl
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Зато есть способы восстановить информацию после серьёзного сбоя или атаки.
Именно о способах восстановления повреждённых данных мы и поговорим на открытом вебинаре «Создаём бэкапы для Ethereum-блокчейна на Rust»
Вы познакомитесь с принципами хранения и развития данных в блокчейн-системах, увидите, как с помощью Rust эффективно переиспользовать код для разных задач на разных целевых платформах.
Вебинар проведёт Кирилл Федченко, опытный программист на Rust, Python, C++.
Будет интересно и Rust-разработчикам и тем, кто использует другие языки.
23 июля, 19:00 МСК
Бесплатно
➡️ Записаться на событие: https://vk.cc/cyy4yl
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
⌨️ Лучший курс по Python
0: Мета информация
1: int
2: +
3: Какой Python язык?
4: bool
5: None
6.0: float
6.1: float, интервью с Michael Overton
7: typeshed
7.1: typeshed, интервью с Alex Waygood
источник
0: Мета информация
1: int
2: +
3: Какой Python язык?
4: bool
5: None
6.0: float
6.1: float, интервью с Michael Overton
7: typeshed
7.1: typeshed, интервью с Alex Waygood
источник