Skip to content
Snippets Groups Projects
Commit 6d7f0f8d authored by Vincent Breitmoser's avatar Vincent Breitmoser
Browse files

Don't disable GC when running on PyPy


PyPy's incminimark GC can't be triggered manually. From what I observed
there are no obvious issues with just letting it run normally. And
unlike CPython, it actually returns unused RAM to the system.

Signed-off-by: default avatarVincent Breitmoser <look@my.amazin.horse>
parent f4284d94
No related branches found
No related tags found
No related merge requests found
......@@ -17,6 +17,7 @@ import logging
import functools
import time
import gc
import platform
from twisted.internet import reactor
......@@ -30,6 +31,7 @@ from .process_collector import register_process_collector
logger = logging.getLogger(__name__)
running_on_pypy = platform.python_implementation() == 'PyPy'
all_metrics = []
all_collectors = []
......@@ -174,6 +176,9 @@ def runUntilCurrentTimer(func):
tick_time.inc_by(end - start)
pending_calls_metric.inc_by(num_pending)
if running_on_pypy:
return ret
# Check if we need to do a manual GC (since its been disabled), and do
# one if necessary.
threshold = gc.get_threshold()
......@@ -206,6 +211,7 @@ try:
# We manually run the GC each reactor tick so that we can get some metrics
# about time spent doing GC,
gc.disable()
if not running_on_pypy:
gc.disable()
except AttributeError:
pass
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment