Limit freqency of collect_garbage

Profiling shows that a large fraction of total CPU usage is going into collect_garbage.  Added logic to allow collect_garbage logic to execute at most once a minute.