Ganhando Desempenho com Apt-Build no 10.04 32 ou 64 bits

Iniciado por ph_swordman, 02 de Novembro de 2010, 16:18

tópico anterior - próximo tópico

ph_swordman

Opaaa galera...
Esse e um dos poucos topicos que eu fiz aki na comunidade...
Me senti quase obrigado a compartilhar algo com essa comunidade que tanto me ajuda...
eu nao achei muitas coisas sobre o apt-build aki e nem no google... geralmente os tutoriais sao muito simples ou apenas explica o que essa ferramenta pode fazer...
entao resolvi por a mao na massa e ver se essa ferramenta e realmente util ou nao...
e surprise... otimos resultados entao estou aki compartilhando....

para realmenter ter um sistema rodando muiiiito bem... eu aconselho a lerem esses topicos aqui mesmo da comunidade...
Tunando o JFS para Desempenho!  http://ubuntuforum-br.org/index.php/topic,74313.0.html
Tunando o ext4 para Desempenho! Revisto, ampliado e ainda mais rápido e seguro! http://ubuntuforum-br.org/index.php/topic,71611.0.html
Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!! http://ubuntuforum-br.org/index.php/topic,29799.0.html

Sobre o Apt-Build

Antes de Prosseguir e Importante que vc tenha um espaço livre na partiçao "/" de no minimo 5Gb pois durante a compilaçao e usado muito espaço da partiçao

Para uma visao bem detalhada sobre o programa aconselho a lerem este artigo : Compilando programas facilmente com o apt-build http://www.guiadohardware.net/dicas/apt-build.html

O apt-build é um sistema gerenciador de pacotes similar ao apt-get. A diferença é que o apt-build compila e monta o pacote para o seu processador. Vamos realmente ao que nos interessa. Como root digite:

# apt-get install apt-build

Então o apt-get instalará o apt-build e fará algumas perguntas que devem ser respondidas, tais como o nível de otimização desejado. Escolha a opção 2, que é o nível médio, resulta em um bom ganho de performance e os programas funcionam normalmente. Por Experiencia propria eu aconselho que nao uso o nivel 3 pois comigo aki sempre dava erro e quando o programa finalmente saia ele viavia travando era o caso seo emesene e do amsn. o apt-build perguntará qual o seu processador, se tiver duvidas entre no terminal e digite:

$ cat /proc/cpuinfo

processor : 0
vendor_id : AuthenticAMD
cpu family : 6
model : 8
model name : AMD Sempron(tm)
stepping : 1
cpu MHz : 1328.119
cache size : 256 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mp mmxext 3dnowext 3dnow up ts
bogomips : 2659.38 clflush size : 32

Ou então você tambem pode usar o seguinte comando:

$ grep "model name" /proc/cpuinfo

E o resultado será: "model name : AMD Sempron(tm)"

Esse é o exemplo da minha máquina, a linha que interessa é "model name : AMD Sempron(tm)"

se sua arquitetura nao tiver aki... procure ela nestes links..

AMD
http://en.gentoo-wiki.com/wiki/Safe_Cflags/AMD

INTEL
http://en.gentoo-wiki.com/wiki/Safe_Cflags/Intel

e simples... olhem só..

Core i7 and Core i5, Xeon 55xx  :

32 bit profile (x86)

CHOST="i686-pc-linux-gnu"
CFLAGS="-march=prescott -O2 -fomit-frame-pointer -pipe"
CXXFLAGS="${CFLAGS}"

64 bit profile (amd64) for < GCC 4.3

CHOST="x86_64-pc-linux-gnu"
CFLAGS="-march=nocona -O2 -pipe"
CXXFLAGS="${CFLAGS}"

64 bit profile (amd64) for >= GCC 4.3

CHOST="x86_64-pc-linux-gnu"
CFLAGS="-march=core2 -mtune=generic -O2 -pipe"
CXXFLAGS="${CFLAGS}"


olhem ai... depende do GCC como o lucid lynx usa 4.4.3

entao sua opçao e core2


Comandos basicos :

Para usar o apt-build, basta rodá-lo de um terminal para instalar o programa que você quiser, como se fosse um apt-get:

apt-build install programa

Ele faz o resto. Tudo simples fácil, e compilado! Todos as demais funções do programa funcionam muito igual ao apt-get, portanto, não vai haver confusões (eu espero!!), seguem aqui algumas, mais simples:

apt-build install --reinstall programa

Reinstala um programa já instalado.

apt-build upgrade

Faz upgrade de todos os pacotes instalados.

apt-build world

Recompila todo o seu sistema (demooooooora)

apt-build source programa

Baixa o código fonte e descompacta, mas não compila nem instala.

apt-build remove programa

Desinstala o programa selecionado

apt-build clean-build

Apaga os pacotes compilados (útil para ganhar espaço no HD)

apt-build clean-sources

Apaga os pacotes fontes (útil para ganhar espaço no HD também) Todos as opções podem ser vistas com um man apt-build. Simples e fácil.

Bem agora como podemos usar esta ferramenta para otimizar nosso sistema ?

eu aconselho a fazerem uma nova instalaçao ,se usarem ext4 ou JSF leiam os tutoriais do Galactus (que estao otimos) e apos a instalaçao do sistema e atualizaçao do mesmo colocarem o Kernel Omnislash ( que chegam estar lindo o tanto que eles rodam pratimante perfeitos).
Ah se vc usa um notebook, com 1gb ram e seu processador nao for tao poderoso, eu aconselho usarem o sistema JSF, roda muiiiiito bem e achei melhor que o ext3/ext4 aki... aconselho tbm a usarem o ubuntu 10.04 principalmente se sua maquina nao for muiiito potente pois este esta muiiito estavel... a canonical fez um otimo serviço nele...

Começando o Sistema do Zero

Para um sistema bem enxuto, eu aconselho a lerem esse artigo do GDH : Sistema enxuto baseado em instalação personalizada do Ubuntu http://www.guiadohardware.net/dicas/ubuntu-enxuto.html
  e para a otimizaçao do sistema usando o metodo bem enxuto...  e simples primeiro vc instala e configura o apt-build depois instala o que vc quer substituindo o apt-get por apt-build... esta e uma opçao muiiiiiiiiiiito demoradaaaaa... nossa leva uma eternidade... mais se vc e do tipo que gosta de tudo rodando as mil maravilhas... esta sem duvida e a melhor opçao....

para aqueles que querem uma instalaçao comum (que e bem mais rapida) e ainda querem desempenho e bem simples tbm...
faça a instalaçao normal...
instale seus programas preferidos, codecs, etc...
remova o que vc nao vai usar... e literalmente nunca vai usaar mesmo como os jogos do ubuntu o tomboy e outras coisas que vc nao usa mesmooo...
depois de fazer isso... se vc quer usar o Kernel Omnislash, este e o momento de instala-lo.
apartir daqui teremos duas opçoes... usar o comando world (teoricamente muito conveniente) ou recompilar seu sistema aos poucos...
vamos para a que teoricamente seria mais conveniente.

Apt-Build World

Bem, para quem leu os tutoriais que coloquei... percebeu algo concerteza... que o comando World e uma mao na roda... bem... este realmente seria a opçao mais viavel mesmo... se nao fosse por ums porens...
mas vamos analizar os pros e contras desse metodo...
pros : se vc ta em um feriado... ou nao vai fazer nda no seu pc... ou ta numa madrugada ociosa... vc pode usar esse comando... deixar o sistema sendo recompilado e quando voltar usar seu sistema todo recompiladinho e rodando muito bem :D:D
Contras: bem... os contras e o que desanima usar viu... se vc usa uma internet que cai muito... esquece... pois se nao for possivel baixar o pacote o comando para de rodar na hora... outra coisa... cara isso demora... demoraaa..demoooooorraaaaa muiiiitooo.... quando digo muito eu digo cerca de um dia e meio no minino.... so o broffice demora quase isso... o wine demorou aki 40 min... entao... pensa...
e enquanto ele recompila o sistema, tudo fica muiiito lento... bem limitado... sem contar que em notbook mal refrigerados ele pode desligar a qualquer momento... pois esquenta pra caralhooo....

mais bem... como pode ser uma alternativa vamos aprender a usar esse comando....
no ubuntu 10.04 se vc for tentar usar o "sudo apt-build world"
provavelmente vai se deparar com um erro...
normal...
vamo concerta-lo antes de usar o comando...
abra um terminal e digite :
dpkg --get-selections | \
Pressione enter e logo depois:
awk '{if ($2=="install") print $1}' > /etc/apt/apt-build.list

pronto depois disso vc ja pode usar o comando apt-build world tranquilamente...

A outra opção

bem podemos fazer as coisas bem calmas... devagarinhoo e deboua... que vai dar no mesmooo resultado....
se vc nao tem paciencia, tempo, ou outro motivo... que nao queira usar o comando world....
podemos recompilar o sistema por partes....
para fazer isso e so usar o comando:
apt-build install --reinstall programa

assim vc pode recompilar tooodo o seus sitema sempre que tiver tempo ou deixar seu pc ocioso....
mais aki vai algumas dicas...
inicialmente recompile os programas que vc mais usa, e que sao mais faceis e rapidos... e vc ja vai começar a notar um ganho de desempenho
recompile o emesene, amsn, rhythmbox, totem ou o smplayer.... etc...
para recomplicar o firefox utilize o seguinte comando

apt-build install --reinstall ubufox ( cara fica otimo, tente... e vc vera :D)

depois com o tempo livre recompile os mais demorados como o openoffice (ou o broffice), xorg,gdm ,acpi-support, gnome-session, gnome-menus gnome-panel,gnome-applets, gnome-volume-manager, gnome-power-manager, metacity, nautilus....

para um guia de o que falta pra recompilar olhe o tutorial sobre a instalaçao enxuta... la tem quase tudo o que precisa :p
dica... utilize o central de programas ubuntu para ver novos programas... e procure por ele usando o seguinte comando:
apt-cache search programa
e instale usando o apt-build... assim vc sempre tira o melhor possivel dos seus programas... :D
Liberando Espaço

Como foi dito no inicio vc precisa de um espeço relativamente grande para poder compilar os programas...
apos a instalaçao vc pode liberar espaço apagando os sources... usando o seguinte comando :

apt-build clean-build

Apaga os pacotes compilados (útil para ganhar espaço no HD)

apt-build clean-sources

Apaga os pacotes fontes (útil para ganhar espaço no HD também)

Fim

ta ai galera... tentei contribuir o maximo com o que eu encontrei na net... e minha experiencia com esse programinha...
se tiver algo errado, duvidas, sugestoes, reclamaçoes... postem ai e veremos o que da pra ser feito... um grande abraço galera....
flws







bred81

Só não entendi no que o apt-build é diferente do apt-get ou aptitude...
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...

ph_swordman

"A diferença é que o apt-build compila e monta o pacote para o seu processador."

ou seja.... ele configura,otimiza,compila e instala o programa para as configuraçoes do seu processador... com isso vc tem um ganho de performace sobre o programa instalado por um programa pre-compilado, que neste possui configuraçao generica...

platao

Boa dica, se unir essa dica com esse tutorial http://ubuntuforum-br.org/index.php/topic,74090.0.html vc pode ter um pacote deb do seu aplicativo compilado e otimizado pronto para instalação.
\\\\\\\\Apostilas Dicas e Guias do Ubuntu\\\\\\\\\> http://ubuntuforum-br.org/index.php/topic,79368.msg440997.html#msg440997

ph_swordman

Citação de: platao online 02 de Novembro de 2010, 18:29
Boa dica, se unir essa dica com esse tutorial http://ubuntuforum-br.org/index.php/topic,74090.0.html vc pode ter um pacote deb do seu aplicativo compilado e otimizado pronto para instalação.

nossa interessante mesmo ...
obrigado ae cara :D

bred81

Excelente dica!

Vou passar a usar o apt-build apartir de agora.
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...

Gunss

Muito bom!


fui testar a dica compilando o handbrake, só que ele da um erro sempre.

"See `config.log' for more details.
make[1]: ** [contrib/a52dec/.stamp.configure] Erro 1
make[1]: Saindo do diretório `/var/cache/apt-build/build/handbrake-svn3643ppa1~lucid1/build'
make: ** [build] Erro 2
dpkg-buildpackage: erro: debian/rules build gave error exit status 2
----> Cleaning up object files <-----
Cleaning in directory ./pkg/linux
Full directory path /var/cache/apt-build/build/handbrake-svn3643ppa1~lucid1/pkg/linux does not match package name, skipping.
Run  --help for more information on directory name matching.
Cleaning in directory .
dh_testdir
dh_testroot
dh_clean
Error while building handbrake-gtk!
Sorry, no package to install."


e outra, melhor adicionar que tem que ter os respositorios de codigo fonte ativos.

hiltongil

Já faz um tempinho que venho tentando usar o apt-build algumas vezes com sucesso outras nem tanto. No firefox realmente o desempenho melhorou sensivelmente. Seria legal se esse tópico o pessoal fosse relatando como é a instalação de outros programas (se houve problemas ou não e soluções). Já o que me impede de utilizar o "world" é minha banda lerda 3g não dá pra querer né. =D

Gunss

#8
o brasero também não deu certo.

O chato é que ele não instala as dependencias.

Outro detalhe, guardem MUITO espaço no HD! Compilar programas ocupa bastante espaço. Para dar um apt-build world deixem no mínimo 15GB para prevenir



instalei o dvdrip, devede, ffmpeg, x264 e vlc sem problemas. O ryhthmbox não deu certo

hiltongil

Citação de: Gunss online 03 de Novembro de 2010, 11:01
o brasero também não deu certo.

O chato é que ele não instala as dependencias.

Outro detalhe, guardem MUITO espaço no HD! Compilar programas ocupa bastante espaço. Para dar um apt-build world deixem no mínimo 15GB para prevenir



instalei o dvdrip, devede, ffmpeg, x264 e vlc sem problemas. O ryhthmbox não deu certo
Aqui o rhythmbox deu certinho, mas eu primeiro desinstalei ele (apt-get remove) para depois instalá-lo via apt-build. O empathy também funcionou certinho.

Gunss

uma dica bem legal

usem o mk-build-deps. Instalem o equivs pelo synaptic. Quase qualquer problema de dependencias o mk-build-deps resolve!

modo de usar é
# mk-build-deps -i programa

hiltongil

Citação de: Gunss online 03 de Novembro de 2010, 13:00
uma dica bem legal

usem o mk-build-deps. Instalem o equivs pelo synaptic. Quase qualquer problema de dependencias o mk-build-deps resolve!

modo de usar é
# mk-build-deps -i programa

Dúvida, você usa ele para completar as dependências antes de instalar o programa com o apt-build? Ou nada a ver com isso?

Gunss

Citação de: hiltongil online 03 de Novembro de 2010, 14:28
Citação de: Gunss online 03 de Novembro de 2010, 13:00
uma dica bem legal

usem o mk-build-deps. Instalem o equivs pelo synaptic. Quase qualquer problema de dependencias o mk-build-deps resolve!

modo de usar é
# mk-build-deps -i programa

Dúvida, você usa ele para completar as dependências antes de instalar o programa com o apt-build? Ou nada a ver com isso?

exatamente. Aqui só consegui compilar o ffmpeg, vlc e devede por causa dele


agora o rhythmbox não consigo de jeito nenhum, ele interrompe sem nenhuma mensagem de erro a compilação

galactus

Vou repetir o que já disse em outros tópicos!

CitarSim tem que usar o apt-build para fazer o Gentoobuntu! Você vai ter que fazer uma instalação básica só do modo texto e partir daí! Instalar e configurar o apt-build e começar a compílar de tudo! Compila o sistema para arquitertura do seu processador, use nível 2 mesmo, pois o nível 3 acaba nãosendo usado! Descobri que muitos programas simplesmente ignoram o nível 3 e voltam para o nível 2! Você pode colocar mais alguns "temperos" para compilar! Vai deixar a compílação mais rápida! Mas não vi dar diferença no uso do sistema em si!

CitarJá fiz um GentooBuntu aqui no meu Notebook! Do zero!  Instalar só o básico e depois compilar todo o sistema, desde o Xorg passando pelo Gnome e todas  as aplicações que ia usar! A diferença é muito grande! Mas dá muito serviço! E tem coisas que não funcionam mais no Ubuntu partindo deste tipo de instalação! Como o gerenciador de rede!

O sistema fica enorme! Ele ocupa muito mais espaço do que uma instalação padrão! Eu sei que você pode apagar tudo o que compilou, mas mesmo assim fica maior!  Pra mim o pior era ter que compilar todas as atualizações do sistema!  Foram 3 dias para instalar tudo o que eu queria!

Eu acho que no fim das contas é melhor usar uma distro voltada para compilações como o Gentoo ou o Arch Linux. Você tem muito menos dor de cabeça com as dependências!  Agora se for olhar só o lado do desempenho, vale muito a pena mesmo!

Como agora eu estou testando o Arch Linux, realmente  dá pra notar muita diferença em uma distro feita para ser compilada!  O Arch 2010.5 usa GCC 4.5 por padrão! Com ele você tira todo o desempenho do seu processador!  E já controla as dependências! Agora não tem assistente pra nada!  Chega a ser pior que o Slackware nisso!

O Ubuntu não foi feito para ficar compilando, mas é uma alternativa para quem gosta de fazer isso e aprender sobre o sistema!
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

Gunss

Citação de: galactus online 03 de Novembro de 2010, 15:58
Vou repetir o que já disse em outros tópicos!

CitarSim tem que usar o apt-build para fazer o Gentoobuntu! Você vai ter que fazer uma instalação básica só do modo texto e partir daí! Instalar e configurar o apt-build e começar a compílar de tudo! Compila o sistema para arquitertura do seu processador, use nível 2 mesmo, pois o nível 3 acaba nãosendo usado! Descobri que muitos programas simplesmente ignoram o nível 3 e voltam para o nível 2! Você pode colocar mais alguns "temperos" para compilar! Vai deixar a compílação mais rápida! Mas não vi dar diferença no uso do sistema em si!

CitarJá fiz um GentooBuntu aqui no meu Notebook! Do zero!  Instalar só o básico e depois compilar todo o sistema, desde o Xorg passando pelo Gnome e todas  as aplicações que ia usar! A diferença é muito grande! Mas dá muito serviço! E tem coisas que não funcionam mais no Ubuntu partindo deste tipo de instalação! Como o gerenciador de rede!

O sistema fica enorme! Ele ocupa muito mais espaço do que uma instalação padrão! Eu sei que você pode apagar tudo o que compilou, mas mesmo assim fica maior!  Pra mim o pior era ter que compilar todas as atualizações do sistema!  Foram 3 dias para instalar tudo o que eu queria!

Eu acho que no fim das contas é melhor usar uma distro voltada para compilações como o Gentoo ou o Arch Linux. Você tem muito menos dor de cabeça com as dependências!  Agora se for olhar só o lado do desempenho, vale muito a pena mesmo!

Como agora eu estou testando o Arch Linux, realmente  dá pra notar muita diferença em uma distro feita para ser compilada!  O Arch 2010.5 usa GCC 4.5 por padrão! Com ele você tira todo o desempenho do seu processador!  E já controla as dependências! Agora não tem assistente pra nada!  Chega a ser pior que o Slackware nisso!

O Ubuntu não foi feito para ficar compilando, mas é uma alternativa para quem gosta de fazer isso e aprender sobre o sistema!

até a instalação do arch é complicada pô! hauahuaa

Mas vale a experiencia, o conhecimento que existe essa ferramenta.
Se você usa wine eu acho uma boa sempre compilar a versão que for instalar, sempre notei um bom ganho de desempenho. OpenOffice duvido muito que traga alguma vantagem, assim como gnome e afins.

Talvez o firefox e o chromium agora tragam alguma vantagem por causa dos vídeos em HD no flash.