Originalmente proposto para a distribuição Slackware, este artigo visa a compilação e otimização da interface gráfica KDE. A diferença de performance é nitidamente perceptível quando os pacotes kdebase e kdelibs são otimizados adequadamente.
Conversando com o pessoal do #slackware-br (irc.freenode.net) sobre o quanto recompilar e otimizar um programa melhora a performance, decidi testar por mim mesmo a compilação e otimização do KDE 3.x para meu processador. E digo: o resultado foi espantoso.
O desempenho do KDE e de suas aplicações ficou consideravelmente melhor. Foram cerca de 10 horas de compilação no meu Pentium4, deixei compilando durante 2 madrugadas (respectivamente pacotes kdelibs e kdebase). Mas, no final, digo: vale a pena.
O segundo motivo que me levou a compilar o KDE foi que os pacotes do KDE no Slackware não são fragmentados como em outras distribuições como o Debian. Se preciso ter o programa KuicKshow no meu Slack, terei que instalar o pacote kdegraphics, assim terei o kuickShow e mais um monte de palha que não uso (não tenho scanner, pra que quero ter o Kooka? Pra enfeite?). Compilar o KDE nos dá a escolha de ter o pacote completo do kdegraphics ou apenas alguns programas do kdegraphics, por exemplo.
O terceiro motivo e creio que último motivo pelo qual compilei o KDE foi a abstração de hardware. O recurso do HAL + KDE não vem habilitado por padrão no pacote kdebase oficial do Slackware (do Patrick Volkerding), para tê-lo, podemos recorrer à pacotes de terceiros ou compilar por nós mesmos. Pra quem não sabe, o HAL + KDE permite que quando inserimos um CD no driver, por exemplo, o KDE pergunte o que queremos fazer com o CD.
Agradeço a ajuda do pessoal do #slackware-br, especialmente o chemonz, pela ajuda necessária.
[1] Comentário enviado por tenchi em 16/03/2007 - 10:15h
Legal a iniciativa, pois os programas otimizados para a máquina ficam realmente mais rápidos. Eu também já tive a insanidade de compilar o KDE assim, mas ficou muita coisa faltando, por exemplo, o travamento da tela com o xlock. Se vc travasse a sessão com o KDE, ela não voltava, só no ctrl+alt+backspace msm... Mas isso foi burrada minha, que não vi a versão do xlock que o KDE usava. Mas eh assim msm. Ah, se vc gosta de deixar um programa sendo compilado, e sair pra tomar um café, compensa usar a capacidade máxima do processador no processo de compilação, que diminui em até a metadde o tempo de compilação (pelo menos aqui foi quase isso). Basta usar (como root) o nice:
# nice -n -20 make
Isso vai deixar a compilação como tendo prioridade máxima, o que vai fazer até a comunicação com o teclado ficar lenta.
Observação: Faça isso com o X desativado, pois senão ele irá travar.
Isso deve ser executado como root, pois as prioridades negativas são restritas ao root.
A última que eu tentei aqui foi o KDE 3.80.2, que um dia vai ser o KDE4. Só o Qt4 demorou mais de 4 horas em nice -20 rsrs. Também, com esse lixo aqui, que eu chamo de computador....
[5] Comentário enviado por removido em 16/03/2007 - 20:50h
tenchi, bem legal essa dica do `nice`. Eu compilei o 3 80 2 também. Mas não compilei o Qt4.x, eu achei melhor tendo em mente que eu só iria usar o Qt4 pra testar o kde4. Mas achei muito legal essa dica do nice.
Inclusive, fiz uma dicazinha, parecida com essa sobre como compilar o kde4, 3.80 na verdade. http://tzbishop.wordpress.com/2006/12/16/compilar-kde-3802/
[7] Comentário enviado por GilsonDeElt em 17/03/2007 - 11:44h
Tom, seu artigo é simplesmente incrível. É o que eu precisava pra compilar meu KDE.
Mas, antes de começar, preciso tirar algumas dúvidas:
Meu processador é um Celeron D315, 2.26 GHz e 256 KB de cache L2. Seria uma boa idéia usar a otimização -O3?
[9] Comentário enviado por rgmmelo em 18/03/2007 - 21:11h
cara muito bom o seu artigo.... faz um tempo qu eu postei aqui pergutando se era possível eliminar aquele monte de programas que eu nem sei pra que servem, ai um cara disse que não era possivel. No entanto vc solucionou...mas acho que meu processador é fraquinho e não dá pra fazer isso. O seu tem 512 de cache e ficou com receio, e o meu celeron 1.8GHZ que so tem 128kb daria pra fazer em 03? ou em 02 perceberei melhoras?
[10] Comentário enviado por carlituS em 20/03/2007 - 00:39h
É disso que o pessoal do Gentoo fala, clicar no botão do Konqueror e abrir quase instantaneamente :)
E para o rgmmelo: no teu Celerom com 128KB pode inclusive ficar melhor com -O2 do que com -O3. Você pode até mesmo usar -Os, que reduz mais ainda o tamanho do executável. Este último faz todas as otimizações do -O2, optimizando para gerar executáveis menores, fazendo com que o tempo de carga e consumo de memória seja menor, sendo por isso recomendado para pcs mais antigos. Eu mudei de -O2 para -Os no meu Atlhon hoje e percebi uma pequena melhora, mas nada que justifique o investimento de recompilar tudo como eu fiz. Pro teu processador costuam recomendar:
[11] Comentário enviado por removido em 22/03/2007 - 16:29h
é carlituS, a discussão sobre CFLAGS nunca termina mesmo. Eu particularmente, acho que 512kb de cache é o mínimo para compilar o sistema inteiro com -O3. Com 256kb de cache, acho interessante compilar somente alguns aplicativos com -O3 e o resto com -Os ou -O2. Enfim... é realmente uma discussão interminável
[12] Comentário enviado por GilsonDeElt em 22/03/2007 - 21:26h
Entrando nessa discussão interminável, o que pode ocorrer se eu compilar meu sistema com -O3? E com -O2? Ou seria melhor -Os? Só relembrando, Celeron D (Pentium 4-based) 2.26 GHz, 256 KB de cachê L2. Caso seja bom informar, meu PC tem 256 MB de RAM
[13] Comentário enviado por carlituS em 23/03/2007 - 09:29h
Eu acho que o máximo que pode acontecer é teu sistema ficar mais lento e com alguma coisa meio instável compilando com -O3, se comparado a uma compilação com -O2, justamente por causa do pouco cache do teu processador. Pro teu Celeron, eu iria de -O2 mesmo.