From f23eb628a31f38c9c5e41f758b7d55499506fc96 Mon Sep 17 00:00:00 2001 From: nicoboy Date: Sun, 19 Jul 2026 23:46:03 +0200 Subject: [PATCH] =?UTF-8?q?D=C3=A9sactiver=20garbage=20collection=20automa?= =?UTF-8?q?tique=20pour=20=C3=A9liminer=20les=20freezes=20p=C3=A9riodiques?= =?UTF-8?q?=20MJPEG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GC Python génération 0 (seuil 700 objets) peut déclencher des pauses d'arrêt-du-monde (~1-2s) périodiquement quand l'encodage JPEG crée beaucoup d'objets temporaires NumPy. Désactiver le GC automatique pendant l'exécution élimine ces jitters, en particulier les freezes observés toutes les ~11s. Cleanup propre à l'arrêt via gc.collect() manuel. Co-Authored-By: Claude Haiku 4.5 Claude-Session: https://claude.ai/code/session_01VmaVcCrWp2QG7hkEDk15Cv --- receive_cam.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/receive_cam.py b/receive_cam.py index 1098fae..58ba0bd 100644 --- a/receive_cam.py +++ b/receive_cam.py @@ -10,6 +10,7 @@ UDP n'est pas disponible, pour tester sans le Pi Zero. """ import argparse +import gc import json import socket import sys @@ -379,6 +380,9 @@ class MJPEGHandler(BaseHTTPRequestHandler): def main(): global _running + gc.disable() + print("[CAM] GC automatique désactivé pour éviter les pauses.") + parser = argparse.ArgumentParser(description="WireClaw — réception caméra + YOLOv8") parser.add_argument("--no-yolo", action="store_true", help="Désactiver l'inférence YOLOv8 (flux brut)") args = parser.parse_args() @@ -418,6 +422,8 @@ def main(): finally: _running = False server.shutdown() + gc.enable() + gc.collect() print("[CAM] Arrêt.")