A substituição de funções bash de origem por executáveis diminui o tempo de inicialização

0

Uma configuração bash típica, source es de arquivos pontuais adicionais na inicialização, o que obviamente aumenta o tempo de inicialização.

Existe algum benefício em mover o conteúdo de uma função para o seu próprio arquivo executável?

Configuração atual

~ / .bashrc

#!/bin/sh
if [ -f ~/.bash_functions ]; then . ~/.bash_functions; fi 

~ / .bash_functions

#!/bin/sh
function_one(){}
function_two(){}
....

Configuração sugerida

~ / .bashrc

#!/bin/sh
export PATH="$PATH:$HOME/.bash_functions/bin"
  • ~ /
    • .bash_functions /
      • bin /
        • function_one
        • function_two
por TarranJones 13.01.2017 / 15:27

1 resposta

2

Na verdade, a execução de um arquivo de script gerará um novo processo de shell enquanto o script não é fornecido, portanto, sua premissa está errada. Mesmo se não fosse:

1) A configuração sugerida não funcionará porque as funções não serão visíveis fora do shell recém-criado.

2) A diferença entre o tempo de execução de um script originado e um script executável é insignificante.

3) A configuração sugerida terminará tendo mais arquivos executados.

Scripts de shell (que são interpretados) são feitos para clareza e praticidade e não para altos desempenhos, como programas C compilados. O que basicamente você está tentando fazer aqui (no caminho errado!) É afinar um carrinho de burro.

    
por 13.01.2017 / 15:54