Source: Dis

← Rendered

markdown source:

---
description: Дизассемблирование в python
tags: tests
title: Dis
---
Модуль dis предоставляет инструменты исследования байт-кода python. Наиболее полезно это для обнаружения состояния "гонки" в многопоточных процессах.

Дизасемблирование модуля не включает автоматический рекурсивный вход в функции. При дизассемблировании модуля будет получена операция загрузки кода функции и его последующего преобразования, но не тело функции. Чтобы заглянуть внутрь, необходимо передать тело функции в `dis()`

Подробнее об [анализе функций тут](https://docs.python.org/3/library/dis.html?highlight=dis#analysis-functions)

Дизасемблирование класса приводит к поочередному дизасемблированию всех методов.

Другие варианты использования:

- дизасмеблирование исходного кода
- дизассемблирование в процессе отладки (если не передавать аргументы, `dis()` найдет исключение и дизасемблирует верхний кадр. В этом случае стрелкой `-->` будет размечено место возникновения ошибки)
- анализ производительности циклов
- исследование производительности скомпилированного кода

Смотри еще:

- [документация](https://docs.python.org/3/library/dis.html?highlight=dis#bytecode-analysis)
- [[inspect]]
- [[python-standart-library]]


[inspect]: inspect "Inspect"
[python-standart-library]: ../lists/python-standart-library "Стандартная библиотека python и полезные ресурсы"