Reduced the garbage collection frequency in runtests.py.
import argparse
import atexit
import copy
+import gc
import os
import shutil
import socket
@@ -53,6 +54,13 @@ warnings.filterwarnings(
category=RemovedInDjango41Warning,
)
+# Reduce garbage collection frequency to improve performance. Since CPython
+# uses refcounting, garbage collection only collects objects with cyclic
+# references, which are a minority, so the garbage collection threshold can be
+# larger than the default threshold of 700 allocations + deallocations without
+# much increase in memory usage.
+gc.set_threshold(100_000)
+
RUNTESTS_DIR = os.path.abspath(os.path.dirname(__file__))
TEMPLATE_DIR = os.path.join(RUNTESTS_DIR, 'templates')
