Desvantagens de usar o pré-carregamento? Por que não está incluído por padrão?

93

Gostaria de saber quais são as desvantagens de usar preload ? Se não houvesse desvantagem, preload estaria habilitado por padrão, então acho que há alguns.

Ok, você precisa de um pouco mais de RAM, mas a maioria das pessoas tem muito mais RAM do que o Ubuntu precisa - então, quais são as desvantagens de usar preload ?

    
por Paradiesstaub 06.03.2012 / 00:06

5 respostas

53

Simplificando, o pré-carregamento não é para todos. É ótimo se você abrir aplicativos ou bibliotecas muito. É prejudicial se você carregar aplicativos ou bibliotecas apenas ocasionalmente. Vou usar dois exemplos do meu uso real (e sim eu uso o pré-carregamento).

Primeiro, o Google Chrome. Agora um navegador é aberto apenas uma vez por inicialização, talvez duas vezes (para mim, eu sou um desenvolvedor web). O Chrome e suas bibliotecas relacionadas permanecem na memória porque estou sempre usando. Mesmo quando eu fecho todas as janelas cromadas, ainda está em segundo plano fazendo a coisa dele. Assim, toda a memória RAM dedicada à realização de uma cópia de pré-carregamento do Chrome é um desperdício total e total. Nunca é (ou raramente) descarregado. Para o usuário médio, isso vale para um grande número de aplicativos. Um usuário do Office quase sempre terá seu aplicativo de email aberto. Assim, a pequena economia no tempo de inicialização é completamente desperdiçada porque eles só abrem o aplicativo de e-mail uma vez por dia e o deixam aberto.

O segundo exemplo é o rake. Como um desenvolvedor de rubis que acredita em testes, eu corro rake a TON. rake corre, executa por alguns segundos - minutos, em seguida, sai. O pré-carregamento me ajuda a acelerar meu trabalho diário porque ele carrega o rake e suas bibliotecas necessárias (que podem ser muito extensas) antes do tempo. Portanto, há muitos arranques e paragens para o funcionamento do rake. O carneiro extra usado para acelerar os 400 ou 500 lançamentos de ancinho ao longo de algumas horas vale a pena.

Portanto, a razão pela qual não é ativada por padrão é porque sua capacidade de realmente melhorar o desempenho é baseada principalmente em como você usa seu sistema. Para algumas pessoas, isso será negativo e positivo para os outros.

Por último, ter o pré-carregamento ativado, mesmo se você não estiver usando, consome RAM. Então, se você não está lançando aplicativos com freqüência, você pode realmente tornar todo o seu sistema um pouco mais lento por não ter esse RAM disponível para outros tipos de cache. Lembre-se, mesmo que você tenha 32 GB de RAM, o Linux tentará usar o máximo possível para armazenar dados em cache para tornar sua interação mais rápida. Ao usar o pré-carregamento, você reduz a memória livre. Mesmo que seja apenas um pouquinho, os 2 segundos que você salvou ao iniciar o cromo 1 podem custar 60 segundos durante o mês em que ele continua em exibição.

    
por coteyr 02.05.2013 / 12:04
16
  

Pergunta feita por bountier Saeed Zarinfam em 5 de setembro de 2012:

     

Oi tudo, eu quero saber, é um mito? O [pré-carregamento] realmente melhora meu desempenho? Quais são as desvantagens de usá-lo? Eu tenho um laptop com esta especificação (CPU Core i5, 4GB de RAM, 128GB SSD Hard). Muito obrigado.

  • Não há necessidade real de pré-carregamento se você tiver um SSD
    • Isso ocorre porque os SSDs fornecem muito tempos de acesso aleatório mais rápidos do que os discos rígidos, portanto, "pré-carregar" binários / dependências na memória é um desperdício, IMO
    • A desvantagem básica é que pré-carregamento está "usando" memória adicional sem fornecer um benefício tangível.
por ish 08.09.2012 / 12:49
10
  

Pré-carregamento é um "daemon readahead adaptável" que é executado em segundo plano   do seu sistema e observa quais programas você usa com mais freqüência,   para acelerar o tempo de carregamento da aplicação. Ao usar pré-carga, você   pode colocar RAM não utilizada para um bom trabalho e melhorar o desempenho geral   do seu sistema desktop.

     

Não espere uma mudança drástica no desempenho   Imediatamente. Além disso, se você está apenas abrindo / fechando aplicativos   repetidamente, o seu computador irá armazenar esses arquivos no cache de qualquer maneira   (isso é chamado de carga "quente"), então você não verá nenhuma diferença   velocidade lá. Você verá, no entanto, uma melhora na velocidade se, por   Por exemplo, você usa um programa intermitentemente; esses programas serão iniciados   mais rápido do que sem pré-carga.

     

Pré-carga pode fornecer uma grande melhoria no tempo de inicialização do aplicativo;   já que a maioria das máquinas modernas tem uma boa memória de sobra,   O pré-carregamento coloca essa RAM em bom uso. 1

Agora que foi dito, parece que o pré-carregamento é um ótimo utilitário, e pode ser.

Eu acho que a razão pela qual não é pré-carregado com o SO, é porque o usuário tem que saber exatamente o que está fazendo, e ter experiência suficiente para poder usá-lo, e o sistema precisa ter RAM suficiente.

Em um aspecto mais técnico, o pré-carregamento funciona movendo dados do disco rígido para a RAM, o que faz com que a maioria dos discos rígidos entrem no modo de suspensão se não forem usados e, depois, precisem girar quando necessário. Portanto, girar para cima / para baixo a unidade faria com que a contagem do ciclo de carregamento / descarregamento aumentasse e a contagem de tempo de ativação aumentasse a vida útil da unidade.

  

Nós projetamos e implementamos o pré-carregamento, um adaptador adaptável baseado em Markov.   esquema de pré-busca que funciona em previsões no nível do aplicativo.   Além disso, o pré-carregamento é implementado no espaço do usuário e não muda   o ambiente de tempo de execução do aplicativo em qualquer sentido. Este é o primeiro   trabalhar experimentando com pré-busca do sistema de arquivos, a este nível, tanto quanto   nós sabemos.

     

Nossos resultados experimentais mostram melhorias promissoras na aplicação   tempo de inicialização comparado a caches frios e uma taxa de acerto   para um algoritmo de predição naïve.

     

No entanto, estar no espaço do usuário introduz grandes obstáculos em fazer   pré-carregue uma solução competitiva para o problema do tempo de inicialização. Dentro   em particular, não ter informações completas sobre a E / S de aplicativos   pedidos, e falta de canais de comunicação strongs com o   o subsistema de cache de páginas degrada drasticamente a eficácia do pré-carregamento,   especialmente sob condições apertadas de memória.

     

Outro problema inerente ao design do pré-carregamento é a alta variação e   baixa predição de confiança causada pela correlação relativamente frouxa de   inicialização de aplicativos. Enquanto nós construímos com sucesso um modelo para rastrear   correlações de aplicativos, o fato de que os lançamentos de aplicativos são muito   eventos raros em comparação com a escala de tempo em que os computadores trabalham,   esquema de pré-busca em nível de aplicativo está condenado a consumir   pré-busca de memória durante períodos de tempo praticamente infinitos. este   memória pode ser usada para melhorar o comportamento de cache de curto prazo.

     

Finalmente, elaboramos um conjunto de recomendações para o sistema   desenvolvedores sobre como melhorar o tempo de inicialização, o tempo de login e o aplicativo   tempo de inicialização sem voltar para um pré-buscador integrado com o   subsistema de cache no kernel. Claro, um pré-buscador baseado em arquivo   o kernel pode melhorar em cima disso. 2

Fonte: techthrob

2 Fonte: Pré-carga - Um Daemon de Pré-busca Adaptativa por Behdad Esfahbod - Uma tese apresentada em conformidade com os requisitos para o grau de Mestre em Ciência - Departamento de Pós-Graduação em Ciência da Computação - Universidade de Toronto Copyright (c ) 2006 por Behdad Esfahbod.

    
por Mitch 28.04.2013 / 11:26
7

Desvantagens? Não há NENHUM!

Maior desempenho na abertura de aplicativos pelo usuário. Eu tenho usado por anos em meus sistemas, bem como "read-ahead" e não tenho problemas. A página de erros para o pré-carregamento não sugere nenhuma desvantagem .

Pré-carregamento monitora os aplicativos que os usuários executam e, analisando esses dados, prevê quais aplicativos usuários podem ser executados e busca esses binários e suas dependências na memória para tempos de inicialização mais rápidos .

Aumenta um pouco o tempo de inicialização, no entanto, o tempo de busca de diminuição de velocidade dos aplicativos excede em muito esse pequeno problema.

veja o artigo

Se você usa constantemente aplicativos comuns como o Firefox ou o Gimp , notará tempos de carregamento bastante aprimorados. O pré-carregamento é um daemon que é executado discretamente em segundo plano e não atrapalha sua área de trabalho de qualquer maneira. Usuários do Ubuntu podem instalar o pré-carregamento com:

sudo apt-get install preload

Resultados:

ref

    
por Ringtail 06.03.2012 / 00:16
2

Dê uma olhada neste documento de Lorenzo Colitti sobre como analisar e melhorar o tempo de inicialização do GNOME .

Coletti não é o autor de preload . Em seu documento, ele faz referência a a página do projeto de pré-carregamento no Sourceforge.net .

Basicamente, existem dois motivos.

  1. Foi um desenvolvimento do GNOME. O GNOME tornou-se impopular e, como afirma Coletti neste artigo, os desenvolvedores de outros ambientes viram esse trabalho como a abordagem errada.

  2. preload é destinado ao desempenho de usuário único, não a multiusuário. Assim, o escopo do projeto não corresponde ao escopo de todas as distros.

Leia as páginas 9 e amp; 10 do documento de Colitti.

    
por j0h 04.05.2013 / 02:21