Visite também: UnderLinux ·  Dicas-L ·  SoftwareLivre.org ·  [mais] ·  Currículo ·  Efetividade ·  Arduino

O poder de 54 linhas de código em um diff: aumenta em 50% a performance do exec() no DragonFlyBSD

Neste commit, Matthew Dillon, programador e líder do projeto DragonFlyBSD aumentou em 50% a performance de chamadas de sistema exec() em apenas 54 linhas de diff. Como dito no changelog, a remoção de um "ping-pong" de spin-locks (pmap em processos que já o haviam recebido através do placemaker) para deixar o código mais limpo acarretou no ganho de performance maior do que o previsto.

Em alguns testes, a performance de um processo single-threaded aumentou de ~4.5KE/s para ~6.5KE/s (kilo exec() calls por segundo), e por algumas razões ainda não entendidas por Matt, chegam aos 8KE/s. Em processamento paralelo de 32 vias não compartilhadas (em processadores Intel Xeon®), este ganho saltou de 92KE/s para 138KE/s.

Isto serve para demonstrar o que uma correção de código preemptiva e remoção de código "legado" podem colaborar no aumento de performance. E isto é apenas em uma chamada de sistema…

Enviado por Nicolas Wildner (nicolasgauchoΘgmail·com)

Comentar

 
comments powered by Disqus

Comentários arquivados