Я работаю над оптимизацией сценария Python (версия 2.7; ограничен из-за старых модулей, которые мне нужно использовать), который работает на AWS и пытается точно определить, сколько ресурсов мне нужно в среде, которую я создаю , Чтобы сделать это, я записываю довольно много информации на консоль при запуске сценария и тестирую различные конфигурации ресурсов.
Одним из узких мест является список из 32 000 элементов, который проходит через Python enumerate
функция. Это займет довольно много времени, и мой сценарий будет слеп к его прогрессу, пока он не закончится. Я предполагаю, что enumerate каким-то образом перебирает элементы, поэтому подумал, что я могу добавить запись или печать в этом l oop. Я знаю, что это 'hacky', но пока он будет работать нормально, так как он временный, когда я запускаю тесты.
Я не могу найти, откуда запускается функция (я нашел класс Enumerate в Модуль numba
. Я пытался там печатать, но он не работал). Я знаю, что это часть __builtin__ module
, и мне тоже трудно его отследить, и я попробовал несколько методов, чтобы найти его точное местоположение, например печать __builtin__.__file__
, но безрезультатно.
Мой вопрос, ) Можете ли вы помочь мне определить, где находится функция, и если это хороший подход? или б) если есть лучший подход к этому.
Спасибо за вашу помощь!