Pull to refresh

Comments 7

К чему эта статья? Что хотел сказать автор?
Это просто занимательная статистика, не более, некоторые мои коллеги даже близко не представляли количество выделяемых объектов в Python. Новички в Python, которые пришли из низкоуровневых языков по типу C/C++ тоже удивляются таким цифрам.

Ну и ещё один пример, почему динамические языки могут быть медленными.
Спасибо!
Я в шоке! Теперь понятно почему «Здарова Мир» так долго выводится.
Не вижу, чтобы где-то доказывалось замедление работы именно из-за количества выделяемых объектов. Такая статистика сама по себе бессмысленна.
Замечательные интроспективные возможности Питона наводят на интересную мысль.
Представьте, что мы написали некий инструмент, который бы визуализировал всё, что происходит под капотом интерпретатора во время выполнения программы. Пусть каждый объект отображается кубиком,… пусть стили оформления отличаются для разных категорий типов объектов. Ссылки сильные и слабые обозначим стрелками. Байткод у нас тоже где-то в этом гигантском переплетении объектов будет размещён. Точку выполнения обозначим рамкой со шлейфом, которая будет скользить и перепрыгивать от команды к команде, заставляя светиться представления функций, внутри которых сейчас курсор исполнения команд.
Давайте, чтобы совсем уж не запутаться и не попасть в петлю бесконечных рекуррентных вызовов (ведь не получится за конечное время визуализировать код, который визуализирует) будем где-то держать черный список модулей, визуализация для которых отключена для простоты и понятности.

Не уверен возможна ли была бы такая штука, но зрелище было бы завораживающее своей сложностью и масштабом… и бессмысленностью=)
Если вы не видели картинок от RunSnakeRun и его преемника SnakeViz, то не поленитесь погуглить. Профайлинг кода превращается в завораживающее путешествие, а со стороны — в магию.
Спасибо. Не знал об этом инструменте.
Sign up to leave a comment.

Articles