web-dev-qa-db-fra.com

Comment faire des onglets de fond agressivement dans Firefox à l'aide de dom.min_background_timeout_value

Quels sont les réglages corrects pour les onglets d'arrière-plan de papillon agressivement dans Firefox?

Il y a des années, j'ai trébuché sur - ce post Expliquer diverses about:config Paramètres de Firefox pour des onglets de fond (et de premier plan), mais je ne pouvais jamais avoir de sens leur signification. Il n'est pas clair, par exemple, quelles sont les unités de chacune de ces options (secondes, millisecondes?) Et si l'augmentation de la valeur permettra d'étourdir des onglets plus ou les manifestera moins.

dom.min_background_timeout_value
dom.timeout.background_budget_regeneration_rate
dom.timeout.background_throttling_max_budget
dom.timeout.budget_throttling_max_delay
dom.timeout.foreground_budget_regeneration_rate
dom.timeout.foreground_throttling_max_budget
dom.timeout.throttling_delay

Spécifiquement, prenons une stratégie d'étranglement ultra-agressive: Je veux le faire afin que les onglets de fond ne soient accordés que 1 ms de temps d'exécution toutes les 30 minutes. Je veux Cette politique d'entrer en vigueur 1 ms après que l'onglet ne soit plus dans le terrain. C'est-à-dire que les onglets ne doivent jamais dépasser 0,00% d'utilisation du processeur pendant une période de 30 minutes après que je laisse un onglet en arrière-plan.

Quelles sont les valeurs de ces paramètres de Firefox pour atteindre ce comportement d'étranglement agressif?

6
Michael Altfield

les onglets ne doivent jamais dépasser 0,00% d'utilisation de la CPU pendant une période de 30 minutes après que je laisse un onglet en arrière-plan.

Cela est réalisable en définissant les entrées suivantes dans about:config

dom.min_background_timeout_value 1,800,000
dom.min_tracking_background_timeout_value 1,800,000
dom.timeout.throttling_delay 1

Selon la section "onglets inactifs" de la documentation Mozilla sur fenêtre.Settimeout :

Pour réduire la charge (et l'utilisation de la batterie associée) des onglets de fond, les délais d'attente sont étrangers pour tirer plus souvent une fois par seconde (1 000 ms) dans des onglets inactifs.

Firefox implémente ce comportement depuis la version 5 (voir Bug 633421, la constante de 1000 ms peut être modifiée via la préférence DOM.MIN_BACK FORMER_TIMEOUT_VALUE). Chrome implémente ce comportement depuis la version 11 (Crbug.com/66078).

Firefox for Android utilise une valeur de délai d'attente de 15 minutes pour les onglets d'arrière-plan puisque Bug 736602 dans Firefox 14 et des onglets de fond peuvent également être entièrement déchargés.

Donc la valeur par défaut de dom.min_background_timeout_value sur Firefox est de 15 minutes (réellement réglé sur 900,000 Comme l'unité est ms), ce qui est logique pour un dispositif qui tente de préserver la batterie et des ressources ratues de RAM/CPU. Doubler cette valeur pour atteindre 30 minutes = 1,800,000.

Notez qu'il y a une entrée distincte dans about:config pour les scripts de suivi de l'étranglement (dom.min_tracking_background_timeout_value) qui devrait également être augmenté à la même valeur de 1,800,000 Mme.

Par défaut, les onglets ne sont pas étrangers lorsqu'ils ne sont plus au premier plan. Nous avons donc défini dom.timeout.throttling_delay à 1 MMS pour commencer les onglets d'étranglement presque immédiatement une fois qu'ils ne sont plus au premier plan.

Je ne sais pas quelle la plupart de ces autres about:config Les entrées font. Les budget celles sont particulièrement confondus et une clarification supplémentaire est la bienvenue.

5
Michael Altfield