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:
@ -10,6 +10,7 @@ UDP n'est pas disponible, pour tester sans le Pi Zero.
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
|
import gc
|
||||||
import json
|
import json
|
||||||
import socket
|
import socket
|
||||||
import sys
|
import sys
|
||||||
@ -379,6 +380,9 @@ class MJPEGHandler(BaseHTTPRequestHandler):
|
|||||||
def main():
|
def main():
|
||||||
global _running
|
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 = 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)")
|
parser.add_argument("--no-yolo", action="store_true", help="Désactiver l'inférence YOLOv8 (flux brut)")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
@ -418,6 +422,8 @@ def main():
|
|||||||
finally:
|
finally:
|
||||||
_running = False
|
_running = False
|
||||||
server.shutdown()
|
server.shutdown()
|
||||||
|
gc.enable()
|
||||||
|
gc.collect()
|
||||||
print("[CAM] Arrêt.")
|
print("[CAM] Arrêt.")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user