AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1500289
Accepted
Michael Altfield
Michael Altfield
Asked: 2019-11-09 05:29:45 +0800 CST2019-11-09 05:29:45 +0800 CST 2019-11-09 05:29:45 +0800 CST

Como limitar agressivamente as guias em segundo plano no Firefox usando dom.min_background_timeout_value

  • 772

Quais são as configurações corretas para acelerar agressivamente as guias em segundo plano no Firefox?

Anos atrás, encontrei este post explicando várias about:configconfigurações no firefox para controlar as guias de segundo plano (e de primeiro plano), mas nunca consegui entender o significado delas. Não está claro, por exemplo, quais são as unidades de cada uma dessas opções (segundos, milissegundos?)

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

Especificamente, vamos adotar uma política de limitação superagressiva: quero fazer com que as guias em segundo plano recebam apenas 1 ms de tempo de execução a cada 30 minutos. Desejo que esta política entre em vigor 1 ms depois que a guia não estiver mais em primeiro plano. Ou seja, as guias nunca devem exceder 0,00% de uso da CPU por um período de 30 minutos após deixar uma guia em segundo plano.

Quais devem ser os valores dessas configurações do firefox para atingir esse comportamento agressivo de limitação?

cpu firefox
  • 2 2 respostas
  • 3914 Views

2 respostas

  • Voted
  1. Best Answer
    Michael Altfield
    2019-11-11T01:49:49+08:002019-11-11T01:49:49+08:00

    As guias nunca devem exceder 0,00% de uso da CPU por um período de 30 minutos após deixar uma guia em segundo plano.

    Isso é possível definindo as seguintes entradas emabout:config

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

    De acordo com a seção "Guias inativas" da documentação do mozilla em window.setTimeout :

    Para reduzir a carga (e o uso de bateria associado) das guias em segundo plano, os tempos limite são reduzidos para disparar não mais do que uma vez por segundo (1.000 ms) em guias inativas.

    O Firefox implementa esse comportamento desde a versão 5 (consulte o bug 633421, a constante de 1000ms pode ser ajustada por meio da preferência dom.min_background_timeout_value). O Chrome implementa esse comportamento desde a versão 11 (crbug.com/66078).

    O Firefox para Android usa um valor de tempo limite de 15 minutos para guias em segundo plano desde o bug 736602 no Firefox 14, e as guias em segundo plano também podem ser totalmente descarregadas.

    Portanto, o valor padrão do dom.min_background_timeout_valuefirefox é de 15 minutos (na verdade, definido 900,000como a unidade é ms), o que faz sentido para um dispositivo que tenta preservar a bateria e os recursos escassos de RAM/CPU. Dobrar esse valor para atingir 30 minutos = 1,800,000.

    Observe que há uma entrada distinta about:configpara scripts de rastreamento de limitação ( dom.min_tracking_background_timeout_value) que também deve ser aumentada para o mesmo valor de 1,800,000ms.

    Por padrão, as guias não são limitadas quando não estão mais em primeiro plano. Portanto, definimos ms para começar a limitar as guias quase imediatamente quando elas não estiverem mais em primeiro plano dom.timeout.throttling_delay.1

    Não sei o que a maioria dessas outras about:configentradas faz. budgetEsses são particularmente confusos e mais esclarecimentos são bem-vindos .

    • 9
  2. Calum McConnell
    2021-05-08T07:02:53+08:002021-05-08T07:02:53+08:00

    Para cargas de trabalho mais complexas do que o simples "acelerar muito todos os cronômetros": ou seja, permitir que os cronômetros sejam executados com mais frequência se forem curtos, também há um mecanismo de orçamento de cronômetro no Firefox. Esse mecanismo de orçamento só permite que os cronômetros sejam executados se houver um 'orçamento' para isso, que é reduzido pela quantidade de tempo que os cronômetros em uma determinada guia gastam em execução e aumentado por uma regeneração lenta. Quando é negativo, o temporizador é impedido de funcionar. Observe que o cronômetro parece ser por guia: é fortemente implícito pelo motivo do recurso que as guias que são "educadas" com seus cronômetros são recompensadas e as guias que não são punidas.

    As seguintes opções em about:config podem ser usadas para ajustar isso:

    dom.timeout.background_budget_regeneration_ratereduz a taxa na qual um temporizador recebe mais tempo para funcionar. É em unidades do número de milissegundos em tempo real que deve decorrer antes que o orçamento para cronômetros de guia em segundo plano em uma guia seja aumentado em um milissegundo.

    dom.timeout.background_throttling_max_budgetdefine o número máximo de milissegundos que podem ser armazenados dentro do orçamento. Uma vez que o orçamento é tão grande, ele para de aumentar.

    dom.timeout.budget_throttling_max_delaydefine o número máximo de milissegundos que os cronômetros em uma determinada guia podem ser forçados a esperar. Ele atua como uma substituição do restante do mecanismo orçamentário.

    Portanto, se a regeneração_rate for definida como 60 e o max_budget for definido como 3000, a guia ganhará um segundo de tempo de execução para cada minuto de tempo real. Se o max_budget nesse caso for definido como 3000, depois de três minutos, o orçamento manterá 3 segundos de tempo de execução e parará de aumentar: portanto, após seis minutos, ainda manterá três segundos. Digamos que o max_delay seja definido como 1000 (ou seja, o orçamento só irá reter os temporizadores por no máximo um único segundo). Observe que essas configurações estão longe de serem ideais.

    Se um cronômetro na guia acima gastar cinco segundos em execução (o que é muito improvável), o orçamento seria de -2.000 milissegundos. Se outro cronômetro nessa guia expirar imediatamente, ele será forçado a esperar 2 minutos enquanto o orçamento é regenerado para um valor positivo. No entanto, como o max_delay é muito baixo (1 segundo), apenas 1 segundo se passará antes que o cronômetro seja acionado de qualquer maneira.

    Como isso interage com o mecanismo de tempo limite mais tradicional descrito por Michael é desconhecido para mim. Veja esta postagem da lista de discussão para obter mais detalhes sobre o mecanismo.

    • 4

relate perguntas

  • Execute um script Selenium em uma máquina remota

  • Os navegadores não obtêm páginas compactadas no sistema operacional Windows 7 de 64 bits

  • Compartilhamento de guias entre instâncias separadas do Firefox

  • O virtualbox requer uma CPU para suportar VT-d para hospedar sistemas operacionais convidados de 64 bits?

  • LGA1151 dimensões físicas?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    Serviço do Windows 10 chamado AarSvc_70f961. O que é e como posso desativá-lo?

    • 2 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Marko Smith

    ssl.SSLCertVerificationError: falha na verificação do certificado [SSL: CERTIFICATE_VERIFY_FAILED]: não foi possível obter o certificado do emissor local (_ssl.c:1056)

    • 4 respostas
  • Marko Smith

    Como posso saber em qual unidade o Windows está instalado?

    • 6 respostas
  • Martin Hope
    Albin Como faço para ativar o WindowsXP agora que o suporte acabou? 2019-11-18 03:50:17 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    Kagaratsch O Windows 10 exclui muitos arquivos minúsculos muito lentamente. Algo pode ser feito para agilizar? 2019-09-23 06:05:43 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    Inter Sys Como Ctrl+C e Ctrl+V funcionam? 2019-05-15 02:51:21 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve