Désactiver garbage collection automatique pour éliminer les freezes périodiques MJPEG

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 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VmaVcCrWp2QG7hkEDk15Cv
This commit is contained in:
nicoboy
2026-07-19 23:46:03 +02:00
parent f8364b703f
commit f23eb628a3

View File

@ -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.")