Um comparativo sobre a alternativa ao patch de ~200 linhas do kernel Linux

Vocês devem ter ouvido falar do patch para o kernel Linux que faria milagres no desempenho da máquina.

Pouco tempo passou até que descobrissem uma forma de obter “os mesmos” resultados sem que fosse necessário recompilar o kernel. Veja aqui!

Pois é, eu fiz um teste em um computador para saber qual a real melhora no desempenho do sistema operacional.

Fiz vários screenshots durante todo o processo.

Logo após iniciar o computador, obtive a seguinte:

Estado do computador após a inicialização.

Estado do computador após a inicialização.

Feito isso, utilizei a biblioteca matemática do Linux para calcular as primeiras 5000 casas decimais do pi através do comando no terminal:

time  echo "scale=5000; 4*a(1)" | bc -l

Enquanto o valor era calculado, obtive outra screenshot:

Rodando o pi.

Durante o cálculo do pi.

O resultado do pi foi:

Resultado do pi

Resultado do pi calculado.

Ainda em tempo, é importante mostrar a configuração do computador utilizado para critério de comparação. Para isto entrei no terminal e utilizei o comando: cat /proc/cpuinfo.

O resultado foi:


processor : 0

vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Pentium(R) Dual  CPU  E2180  @ 2.00GHz
stepping : 13
cpu MHz : 1200.000
cache size : 1024 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm lahf_lm
bogomips : 4019.63
clflush size : 64
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Pentium(R) Dual  CPU  E2180  @ 2.00GHz
stepping : 13
cpu MHz : 1200.000
cache size : 1024 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
apicid : 1
initial apicid : 1
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm lahf_lm
bogomips : 4019.25
clflush size : 64
power management:


Feito isso, realizei as alterações demonstradas aqui e que fariam as mudanças radicais mencionadas anteriormente. Reiniciei a máquina, mesmo sabendo que não há necessidade, preferi fazê-lo a fim de que os resultados fosse obtidos nas mesmas condições.

Abaixo as screenshots:

Screenshot do estado da máquina após as modificações e a reinicialização.

Screenshot do estado da máquina após as modificações e a reinicialização.

Efetuando o cálculo do pi após as modificações.

Efetuando o cálculo do pi após as modificações.

Resultado final após as modificações.

Resultado final após as modificações.

Se olharem com atenção, verão que o código utilizado não usa threads, ou seja, ele utiliza apenas um núcleo para realizar o cálculo das casas decimais do pi. Certamente em um código mais elaborado, o resultado será diferente, mas nesse experimento foi verificada uma melhora de ~1 segundo.

Real: 0m01.013s – Tempo real utilizado entre a chamada e o término da função.

User: 0m00.816s – Tempo total de utilização da CPU pelo usuário.

Sys:0m00.000s – Tempo de CPU do sistema.

Resumindo, houve uma melhora no desempenho do computador. Entretanto, nada muito notável no que tange à cálculos matemáticos.

Em breve farei esse mesmo experimento no meu computador Core2Quad, com Ubuntu 10.04. E utilizarei mais casas decimais, assim o computador será mais exigido.

É válido lembrar que foram realizadas mais duas amostras do cálculo do pi para cada estado, a diferença entre os tempos gastos pelos cálculos manteve-se sempre constante. Ou seja, a melhora é real.

Agradeço a visita e espero que tenham gostado. Quaisquer dúvidas, deixe um comentário.

Abraços!

Publicado em Software Livre

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

*

*