De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Redução do tamanho do código executável de programas
Colaboração: Paulo Antonio Hypolito Rodrigues
Data de Publicação: 06 de Agosto de 1997
Os executaveis são muitas vezes compilados com informacoes de
depuração (debug) e posteriormente "linkados" mantendo-se extensas
tabelas de simbolos nos executaveis.
Se voce quer reduzir o tamanho de alguns executaveis, utilize
o utilitario 'strip' sobre o executavel.
Para saber se o programa já passou pelo strip:
$ file pine
pine: ELF 32-bit MSB executable SPARC Version 1, dynamically linked, not stripped
$ ls -go pine
-rwxrwxr-x 2 3076640 Jul 31 17:07 pine
$ strip pine
$ file pine
pine: ELF 32-bit MSB executable SPARC Version 1, dynamically linked, stripped
$ ls -go pine
-rwxrwxr-x 2 1831156 Jul 31 17:17 pine
Se voce quer compilar o programa sem o codigo para depuração use a opção
-LDFLAGS="-s".
não execute o strip sobre ele mesmo, copie-o com outro nome e execute
o comando, depois é só remover o anterior.
Nesta mesma linha, se voce não pretende depurar um "core"
que alguma aplicação venha a gerar na sua area, voce pode
colocar um limite baixo para o tamanho dos "cores".
O comando depende do seu SHELL.
No caso do Bash para ver os limites:
$ ulimit -a
core file size (blocks) unlimited
data seg size (kbytes) 2097148
file size (blocks) unlimited
open files 64
pipe size (512 bytes) 10
stack size (kbytes) 8192
cpu time (seconds) unlimited
max user processes 2021
virtual memory (kbytes) unlimited
Acrescente no arquivo .profile ou .bashrc ulimit -c 102400.
No caso do CSH:
$ limit
cputime unlimited
filesize unlimited
datasize 2097148 kbytes
stacksize 8192 kbytes
coredumpsize unlimited
descriptors 64
memorysize unlimited
p. ex.:
$ limit coredumpsize 100k
Meus agradecimentos ao Paulino Ng <<paulino (a) na-sp rnp br>> pela dica e
revisão do texto acima.