Comment réduire les coûts de Puppeteer de 70 % avec Lightpanda
28 de abril de 2026
0
Computing/SoftwareComments (0)
Log in to leave a comment
No posts yet
Log in to leave a comment
No posts yet
Puppeteer est un véritable casse-tête dans les environnements serverless. Il consomme énormément de mémoire et son initialisation est lente. C'est l'une des raisons pour lesquelles les coûts d'exploitation d'AWS Lambda ou de Google Cloud Functions montent en flèche. Lightpanda, créé avec le langage Zig, est différent. Cet outil multiplie la vitesse d'exécution initiale par 30 et réduit l'utilisation de la mémoire par 10.
Les tarifs du serverless sont proportionnels à l'allocation mémoire et au temps d'exécution. Le moteur Chromium passe 4,5 secondes rien que pour le chargement de la première page, car il traite le rendu des polices, les paramètres GPU et d'autres éléments inutiles pour la collecte de données. En revanche, Lightpanda termine en 0,4 seconde. Lors du traitement parallèle de 100 pages, Chromium occupe 4,2 Go de mémoire, tandis que 410 Mo suffisent à Lightpanda. Cette seule différence permet de réduire la configuration mémoire de Lambda de 1024 Mo à 256 Mo et d'économiser immédiatement 70 % sur les coûts d'exploitation.
Il n'est pas nécessaire de refaire tout votre code Puppeteer. En utilisant le pattern adaptateur, vous pouvez remplacer le moteur simplement en changeant les variables d'environnement.
puppeteer-core.puppeteer.connect({ browserWSEndpoint: 'ws://127.0.0.1:9222' }) au lieu de l'habituel puppeteer.launch().docker run -d -p 9222:9222 lightpanda/browser:nightly en local pour lancer le serveur Lightpanda et tester si votre code fonctionne correctement.Cette méthode est sécurisée car elle permet un retour arrière immédiat vers l'environnement Chromium existant en cas de problème.
Redémarrer le navigateur à chaque fois ne fait que générer des coûts. Appliquez la méthode du "Warm Start" en conservant l'instance du navigateur en dehors de la fonction.
LightpandaManager en dehors du handler.browser.createBrowserContext() pour chaque requête afin d'isoler la session, et récupérez immédiatement la mémoire avec context.close() une fois la tâche terminée.Le simple fait de réduire les redémarrages du navigateur rend le système 5 fois plus rapide.
Pour les SPA complexes difficiles à gérer avec Lightpanda, mélangez l'utilisation avec Chromium. Ne confiez pas tout au moteur lourd.
page.evaluate().Il suffit de traiter 90 % du flux de travail avec Lightpanda et d'utiliser les ressources coûteuses uniquement au moment opportun.