Compilação otimizada (Resolvido)

1. Compilação otimizada (Resolvido)

Gilson Júnio Pacheco Silva
GilsonDeElt

(usa openSUSE)

Enviado em 09/05/2008 - 14:36h

Inaugurando a comunidade de perguntas não tão frequentes...

É o seguinte: vou compilar meu sistema com tudo otimizado. Dei uma olhada no manual do gcc, e lá tem algumas explicações sobre os níveis de otimização (-O1, -O2, -O3 e -Os) e algumas opções extras para elas.

Minha dúvida é: num processador Celeron D (2.26 GHz e 256 KB L2) fica melhor -O2, -O3 ou -Os (pc com 256MB RAM por agora)?

Já perguntei isso por aí antes, e me indicaram -O2 e -Os.
Queria saber de alguém que entende mais dessa área se vale a pena usar -Os, pois pelo que entendi ela reduz o tamanho do executável, ou se é melhor o -O2 mesmo.

E, dentre as FLAGS extras, quais são as indicadas (tudo visando garantir desempenho máximo e estabilidade)?

Desde já, agradeço a atenção de vocês.


  


2. Re: Compilação otimizada (Resolvido)

Fabio Maran
maran

(usa Debian)

Enviado em 09/05/2008 - 15:13h

vc mesmo ja responde sua pergunta:

Faça assim.

Qual é meu processador, tanto de memória, etc

Ai se vai la e ve, qual dos dois atender a mais de um requisito é o selecionado.

xD


3. Re: Compilação otimizada (Resolvido)

Rodrigo Ferreira Valentim
engos

(usa openSUSE)

Enviado em 09/05/2008 - 15:26h

-O2 mesmo

Agora você pode colocar as flags de processador, no seu caso i686.





4. Completando

Rodrigo Ferreira Valentim
engos

(usa openSUSE)

Enviado em 09/05/2008 - 15:32h

Achei um doc que tenho explicando melhor, em resumo:

Se você for compilar com bibliotecas compartilhada:
CFLAGS="-O2 -march=i686 -funroll-loops"

Se você for compilar com bibliotecas estáticas:
CFLAGS="-O2 –static -march=i686 -funroll-loops"


5. Again and again

Gilson Júnio Pacheco Silva
GilsonDeElt

(usa openSUSE)

Enviado em 17/05/2008 - 13:20h

Tô ressucitando o tópico pois dei uma nova pesquisada, e achei informações novas.

Tô recompilando o kernel tbm, e lendo o help das opções de processador, achei lá que o meu Celeron D é baseado num Pentium 4 de núcleo Prescott (pois tem as versões de Celeron D mais novas, baseadas no núcleo Cedar Mill).
Procurei na net, e confirmei essa informação.
Num Wiki sobre Gentoo (em http://gentoo-wiki.com/Safe_Cflags#Pentium_4_.28Prescott.29_.2F_Celeron_D )
achei que devo usar as flags de otimização para o núcleo Prescott.

Mas procurando na net, diz que o Celeron D de núcleo Prescott tem suporte a um monte de "bagulhada", como o EM64T, Intel XD e, principalmente, as intruções SSE3.
O EM64T e o XD são desabilitados no meu Celeron, segundo informações que achei na net, mas não achei nada sobre o bloqueio das SSE3.

Quando dou um 'cat /proc/cpuinfo | grep flags' num terminal, aparecem várias flags, entre elas 'sse' e 'sse2', mas não há nada sobre 'sse3'.

E agora, compilo usando as flags de celeron do núcleo willamete (--march=pentium4) ou com as de celeron D de núcleo prescott (--march=prescott)?
E caso eu use as de núcleo prescott, terei algum problema se as instruções 'sse3' do meu processador estiverem desabilitadas?

E de novo: -O2 ou -Os?
Pois nesse wiki do Gentoo diz que o -Os é indicado para máquinas com pouco cache L2 e/ou pouca memória.
Meu PC tem 256MB de RAM, e devo colocar 512 nele daqui a uns tempos (só não sei quando).
Com esses 256MB o KDE roda até bem quando uso o PC como uma pessoa "normal", mas fica ruim quando começo a pesquisar sobre algum assunto, pois abro várias abas no Konqueror (acho que meu recorde foi de 63 abas numa janela). Será que se eu compilar com -Os terei alguma melhora quando ocorrer esse tipo de coisa?

Ah!, e engos, tem como cê me mandar esse documento, ou o link dele?

vlw pela ajuda, gente!


6. Re: Compilação otimizada (Resolvido)

Gilson Júnio Pacheco Silva
GilsonDeElt

(usa openSUSE)

Enviado em 17/05/2008 - 17:32h

Is there somebody here??


7. Continuando...

Gilson Júnio Pacheco Silva
GilsonDeElt

(usa openSUSE)

Enviado em 20/05/2008 - 13:33h

com mais algumas perguntas aqui no VOL e umas pesquisas pela net, confirmei que meu processador suporta as 'sse3'

por enquanto, minha CFLAG está assim:
CFLAGS="--march=prescott -Ox (ainda na dúvida entre -O2 e -Os) -pipe -fomit-frame-pointer -mmmx -msse -msse2 -msse3 -mfpunit=sse
-funroll-loops --colocar-mais-coisas"

Em todo caso, tô dando uma lida na man do gcc, pra ver se acho mais coisas para as flags...






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts