a67b237161
CPython's allocator holds freed memory in arenas and doesn't return it to the OS, causing RSS to grow throughout the 2015-activity loop even when each iteration's objects are freed. Call gc.collect() + malloc_trim(0) every 50 activities to return freed pages to the kernel and keep RSS flat.