No bash, .bashrc
(e vários outros scripts) pode carregar na memória na inicialização do shell. Estes podem ter 10 linhas, mas podem ter centenas (se não milhares) de linhas. Cada exportação consumirá uma pequena quantidade de memória, e cada função e cada alias também um pouco de recursos a serem mantidos na memória. Outra consideração é que não podemos apenas olhar para o tamanho dos .bashrc
scripts e de outros scripts, pois eles podem ter muitos comentários que não consomem memória.
Eu gostaria de remover todos os scripts de inicialização, iniciar o sistema, esperar alguns minutos para que as coisas se acalmem e, em seguida, obter algum tipo de linha de base, colocar os scripts de inicialização de volta no lugar, reiniciar o sistema e realizar o mesmo exercício para tentar e obter algum tipo de diferencial de recurso/desempenho.
Você pode sugerir quais ferramentas podem ajudar a determinar isso? Eu tenho um conjunto relativamente grande de scripts de inicialização, cerca de 15k com muitas funções e aliases definidos, então estou muito curioso sobre o impacto (se houver, como um sistema moderno com 16 GB de memória e um Core i5 moderno e rápido, o efeito poderia ser insignificante) isso afeta o sistema em termos de recursos consumidos? Mesmo que o impacto dos meus scripts de inicialização seja baixo, eu ainda adoraria poder obter uma linha de base e depois um 'teste de carga' posterior para obter alguma avaliação de como os sistemas lidam com a execução de um determinado conjunto de aplicativos.
O impacto de seus scripts de inicialização e a configuração resultante afetarão principalmente os shells interativos; para determinar o consumo de recursos resultante, você não precisa se esforçar muito. Abra uma janela de terminal, para que seu shell padrão comece com sua configuração padrão, inicie um shell sem carregar os scripts de inicialização e, a partir desse shell, execute
ps -F
:Olhando para a
RSS
coluna mostra que minha configuração do bash (que é bastante mínima) usa 124KiB mais do que um bash sem frescuras.Minha configuração Zsh é mais complexa:
A diferença lá é maior, 2440KiB.
Shells não interativos não carregam os mesmos scripts de inicialização, e eles não sobrevivem por muito tempo - se você executar
ps -FC sh
,ps -FC bash
etc., você deve ver que não há muitos (se houver).O que você carrega em seu ambiente pode ter um impacto maior; para ter uma ideia disso, veja o tamanho real de
/proc/.../environ
:São 741 KiB no total, para quase mil processos em execução.