В Python большая часть мусора собирается с помощью подсчета ссылок. Можно было бы ожидать, что это будет быстро и безболезненно, и вряд ли это то, что вы ищете. Я предполагаю, что вы спрашиваете о коллекторе, на который ссылается модуль gc
, который используется только для циклических ссылок.
Есть несколько вещей, которые могут быть полезны: http://docs.python.org/library/gc.html
Хотя не существует прямого метода для времени сборщика мусора, вы можете включить и выключить его, включить отладку, посмотреть количество сборок и т. Д. Все это может быть полезно в ваш квест.
Например, в моей системе gc
выводит истекшее время, если вы включите флаги отладки:
In [1]: import gc
In [2]: gc.set_debug(gc.DEBUG_STATS)
In [3]: gc.collect()
gc: collecting generation 2...
gc: objects in each generation: 159 2655 7538
gc: done, 10 unreachable, 0 uncollectable, 0.0020s elapsed.
Помимо всего этого, первое, на что я бы обратил внимание, это эволюция использования памяти вашей программой во время ее работы. Одна из возможностей заключается в том, что он просто достигает предела доступной физической памяти и замедляется из-за чрезмерных сбоев страниц, а не из-за каких-либо действий со сборщиком мусора.