Категории

Интерпретатор
Мероприятие
Аспект языка

19 июля 2017 г. 13:29 (ред. 20 июля 2017 г. 0:23)
Об изменении в getsizeof и коференции PyCon Russia 2017.
То есть, функция такая, но не всегда. А теперь обо всём по порядку.

Позавчера завершилась PyCon Russia 2017.

В выступлении «PyWat. А хорошо ли вы знаете Python?» Александр Швец рассказывал бородатые анекдоты (и многие над ними таки смеялись). Среди прочего, он упомянул об «удивительном» поведении функции getsizeof при расчёте размера контейнеров. Зал восторженно и удивлённо кричал: «Whaaaat?». И я вспомнил, как в детстве, будучи в цирке впервые, мы делали примерно то же, когда фокусник из цилиндра кролика живого доставал. Правда, в Союзе кричали по-русски, но в целом похоже.

Александр, возможно, и не догадывался, что примерно в то же время, когда он это рассказывал, к выходу готовился Python 3.6.2, в котором содержится изменение, повлиявшее на работу getsizeof. Изменение, являющееся неплохим подспорьем для иллюзий, подобных упомянутой выше.

Итак, благодаря работе Донг-хе На над задачей bpo-12414, функция теперь учитывает размер памяти, занимаемой co_extra. Напомню, что co_extra был внесён в рамках PEP-523 — это та самая штука, позволяющая влиять на исполнение фреймов, которую делали в основном с прицелом на JIT. Именно о ней рассказывала Елизавета Шашкова на майской PyCon US 2017 (и, наверное, на PyCon Russia 2017 тоже — проверить это не успел).

Мораль простая: информация устаревает, держите руку на пульсе.
Есть в этом, конечно, минус — над бородатыми анекдотами не посмеяться, но есть и плюс, согласитесь.

Конференция PyCon Russia 2017, кстати, в целом получилась неплохой — особенно удался сосновый бор «как в Томске».
Спасибо организаторам и выступавшим.

Держите руку на пульсе, посещайте конференции.