Skip to content

Stratégie de Performance - Chromecast V3 ​

Ce mémo répertorie les contraintes techniques, les risques critiques et les recommandations d'optimisation pour l'exécution de l'application sur la plateforme Chromecast V3.

1. Contraintes Matérielles ​

Le Chromecast V3 est un appareil extrêmement limité en ressources :

  • CPU : Processeur basse consommation (souvent saturĂ© au dĂ©marrage).
  • RAM : ~512 Mo au total. La mĂ©moire disponible pour l'onglet de navigation est très restreinte.
  • GPU : Supporte l'accĂ©lĂ©ration matĂ©rielle 1080p, mais peine avec les effets CSS complexes.

2. Risques Critiques Identifiés ​

A. Surcharge Mémoire (OOM - Out of Memory) ​

L'application tourne dans une iframe pilotée par une application hôte. Ce pattern "Matriochka" consomme une double part de RAM (Runtime de l'hôte + Runtime SvelteKit).

  • Risque : Crash silencieux de l'iframe ou redĂ©marrage complet du Chromecast si la RAM dĂ©passe le seuil critique.
  • Vigilance : Éviter les fuites mĂ©moire (unmount des stores/events) et limiter le nombre d'assets chargĂ©s simultanĂ©ment.

B. Saturation CPU au Démarrage (cmsPipeline) ​

Le pipeline de données lance de nombreuses requêtes asynchrones en parallèle.

  • Risque : Le parsing simultanĂ© de plusieurs gros fichiers JSON (Showcase, Facility, Ads) peut bloquer le thread principal (UI Freeze).
  • ConsĂ©quence : Si l'application ne rĂ©pond pas aux PING du Watchdog de l'hĂ´te pendant cette phase de saturation, elle sera redĂ©marrĂ©e de force.

C. Coût des ResizeObserver ​

L'utilisation de ResizeObserver (notamment dans DetachedPage.svelte) pour détecter le scroll et le focus a un coût en calcul constant.

  • Risque : Saccades (jank) lors des animations si l'observer surveille trop de nĹ“uds enfants.

D. Bridage Thermique (Thermal Throttling) ​

Le Chromecast V3 dissipe mal la chaleur. Une activité CPU constante (SSE, animations complexes, polling) fait monter la température.

  • ConsĂ©quence : Le système rĂ©duit la frĂ©quence du processeur pour refroidir, rendant l'application de plus en plus lente au fil du temps.

3. Checklist d'Optimisation ​

Assets & Images ​

  • [ ] RĂ©solution : Ne jamais dĂ©passer 1080p. Utiliser les transformations Directus pour servir des images Ă  la taille exacte.
  • [ ] Format : PrivilĂ©gier le WebP pour rĂ©duire le poids et le temps de dĂ©codage.
  • [ ] Fonts : Limiter Ă  1 ou 2 graisses de polices maximum.

CSS & Animations ​

  • [ ] GPU Only : N'animer que transform (scale, translate) et opacity.
  • [ ] Éviter : box-shadow, backdrop-filter: blur, et les gradients radiaux complexes qui sont rendus logiciellement par le CPU.
  • [ ] Structure : Garder un DOM le plus "plat" possible (moins de 1000 nĹ“uds au total).

Réseau & Data ​

  • [ ] Payloads Lean : Utiliser le paramètre fields dans les appels API pour ne rĂ©cupĂ©rer que les donnĂ©es affichĂ©es.
  • [ ] SĂ©quençage : Si le dĂ©marrage est trop lent, envisager de sĂ©quencer les appels du cmsPipeline au lieu de tout parallĂ©liser.

4. Monitoring ​

Pour diagnostiquer les performances sur un appareil réel :

  1. Utiliser l'inspecteur Chrome Ă  distance (chrome://inspect).
  2. Filtrer la console avec le tag [BRIDGE] pour surveiller la réactivité aux messages de l'hôte.
  3. Surveiller l'onglet Memory pour détecter toute croissance linéaire de la consommation de RAM.