Ответ 1
Профилировщик IPython находится на месте. Результат действительно кэшируется (по крайней мере, в некоторых версиях python). Например, в python 2.7.6 вы можете найти соответствующий код здесь, где определена функция cache_struct
.
Эта функция просматривает кеш, чтобы увидеть, был ли недавно применен данный формат и возвращает соответствующий экземпляр Struct
вместо создания нового (что кажется относительно дорогостоящим).
Вы можете видеть, что он используется в функции pack
(и другие).
Этот контент был размещен в комментариях, но заслуживает ответа.