Será que o dnf do Fedora é tão lento o quanto afirmam?

Será que o dnf do Fedora é tão lento quanto afirmam?
Será que o dnf do Fedora é tão lento quanto afirmam?
 Este é o segundo artigo sobre Fedora que eu escrevo aqui no meu blog. Em uma de minhas lives surgiu uma pergunta a respeito do desempenho do DNF se comparado aos outros gerenciadores de pacotes. Até que eu não vi isso na live, mas uma coisa que percebi entre os usuários de Linux é que já há o mito de ser um gerenciador de pacotes ruim e com péssimo desempenho; e como sempre, todo mito se propaga rapidamente e permanece por longas datas (não importando se desmistifique o assunto)...

 Bom, mas aqui vou eu mais uma vez em uma tentativa frustrante de explicar o óbvio e que parece que não vai adiantar nada. Mas mesmo assim a gente faz.

 No dia 22 de Março de 2020, foi anunciado o desenvolvimento da terceira verso do DNF cujo o seu maior foco é exatamente o desempenho e que de acordo com o próprio artigo do anuncio, esta versão já começa a apresentar bons resultados através de sua biblioteca:

Testes comparativos de desempenho com as versões 0.9.1, 0.11.1 e 0.13.0 da libdnf
 Mas mesmo com os dados já apresentados eu não deixaria de realizar testes também e aqui eu percebo dois problemas entre os usuários sendo que ambos são mais questão psicológicas do que reais, tratam-se de falta de analise e percepção.

 O primeiro afirmam que o desempenho do DNF não é bom se  comparado a outros gerenciadores de pacotes como o APT da família Debian, o portage da família Gentoo, o APK do Alpine Linux e pakman do Arch (como sempre, tudo do Arch é melhor do que de todo mundo...). Até aí não é um problema, o problema é a forma como a ideia acaba sendo mentalizada. Ao invés de "DNF bom e outros gerenciadores de pacotes melhor", a ideia acaba sendo mentalizada como "DNF ruim e outros gerenciadores de pacotes bom". E isso é um problema geral na vida. Ser humano tem um problema psicológico com números.

 Depois começa a desculpa de que foi "pelos testes que fizeram" ou "falam por experiencia própria"... E é uma pior que a outra e é aqui que mora o segundo problema: Não entender como o gerenciador de pacotes funciona.

 Uma coisa que eu percebi (e que em partes achei um pouco incomoda) é quando vou realizar uma busca por um programa sem antes ter realizado um update no DNF. O DNF irá primeiro atualizar a sua base de dados (e caso houver atualizações, irá então concluí-las) para depois realizar a minha busca como pode ser conferido na imagem abaixo.

DNF realizando atualização do sistema antes de realizar a busca solicitada.
DNF realizando atualização do sistema antes de realizar a busca solicitada.
 A principio eu achei isso incomodo mas depois achei até interessante (caso eu não tenha esquecido de verificar pro atualizações, o DNF já fez isso por mim, tudo uma questão de vantagens e desvantagens). Basicamente o APK do Alpine Linux também trabalha desta forma. Após a atualização, todas as demais buscas ficam muito mais rápidas que levam entre 3 a 5 segundos dependendo da sua internet e do seu hardware. Nesse caso falo pela minha internet que é de apenas 5 megabits (que dividindo 5 por 8, corresponde a 625 Kylobytes) e ainda estava assistindo a uma transmissão ao vivo.

DNF realizando a busca solicitada não tendo atualizações.
DNF realizando a busca solicitada não tendo atualizações.
Oscilações na busca do mesmo pacote devido a internet está sendo utilizada.
Oscilações na busca do mesmo pacote devido a internet está sendo utilizada.
 Já o processo de baixar o pacote, suas dependências e instalá-los também não levou tempo. Na imagem abaixo podem ser conferidos o tamanhos dos pacotes, a velocidade com que os pacotes foram baixados, quanto tempo levou para baixar e o tempo total de todo esse processo e de instalação.

Tempo de instalação do Simple screen Recorder no Fedora 31.
Tempo de instalação do Simple screen Recorder no Fedora 31.
 Moral da história é não, não vejo o DNF como possuindo desempenho ruim ao ponto de desenhá-lo como fosse algo que se torna desagradável e impactante da produção. O DNF possui desempenho aceitável? Sim!

 Poderia ser melhor? É CLARO QUE SIM! O Debian mesmo fez isso anos atras melhorando o desempenho do APT e do DPKG da versão 7 para a 8 e do 8 para o 9 como mostrei como mencionei na retrospectiva que fiz . Podemos perceber a diferença de desempenho até mesmo entre o DNF e o próprio Flatpak que também está presente no Fedora (o Flatpak utiliza quase a metade do tempo do DNF).

Benchmark de busca por atualização entre DNF e o Flatpak. Claro que nenhum dos dois precisou resolver nada, mas foi para fins de teste (inclusive, até nada a resolver é um teste valido).
Benchmark de busca por atualização entre DNF e o Flatpak. Claro que nenhum dos dois precisou resolver nada, mas foi para fins de teste (inclusive, até nada a resolver é um teste valido).
 Ou seja, só não da para se manter em uma zona de conforto, mas que o DNF possui desempenho aceitável e não impactante, isso sim. Uma dica é sempre manter o sistema atualizado (nunca deixe as atualizações acumularem) e se quiser aprender mais sobre Flatpak, então aconselho a conferir o site Fast OS e o seu canal.

Lançado novo Minicurso de atributos no Linux

Comente com o Facebook:

Nenhum comentário:

Postar um comentário

Viu algum erro e quer compartilhar seu conhecimento? então comente aí.

Observação: somente um membro deste blog pode postar um comentário.

Marcadores

A pior história sobre Linux que já ouvi (5) A.I (2) ambiente gráfico (19) AMD (14) analise (10) Andriod (16) android (7) Apple (1) arm (5) artigo (5) aws (1) bc (23) benchmark (6) BetrFS (1) blackhat (1) BSDs (30) btrfs (32) bugs (2) Caixa de Ferramentas do UNIX (19) canto do Diego Lins (2) certificações Linux (7) Código Fonte (54) comandos (31) comp (1) compressores (5) container (7) CPU (19) cracker (1) criptografia (5) crowdfunding (9) cursos (24) daemons (13) Debian (31) desempenho (1) desenvolvimento (90) desktop (19) DevOps (3) DevSecOps (4) dic (1) Dica de leitura (90) dica DLins (2) dicas do Flávio (27) Dicas TechWarn (1) diet libc (3) diocast (1) dioliunx (3) distribuições Linux (14) Docker (12) DragonflyBSD (22) driver (1) ead Diolinux (2) edição de vídeo (5) embarcados (1) EMMI Linux (4) emuladores (9) endless (5) English interview (3) Enless OS (2) entrevista (17) espaço aberto (82) evento (6) facebook (1) Fedora (10) filesystem (82) financiamento coletivo (2) fork (4) fox n forests (4) FreeBSD (20) Funtoo Linux (13) games (93) gerenciadores de pacotes (4) glaucus (3) GOG (3) google (9) gpu (3) hacker (2) hardware (104) hash (1) helenos (3) I.A (1) init system (11) Intel (15) inteligencia artificial (2) IoT (1) ispconfig (1) jogos (37) kde (1) kernel (138) lançamento (64) leis (1) LFCS (1) libs (2) licenças (8) Linus (16) linus torvalds (2) Linux (194) linux foundation (3) linux para leigos (1) live (5) LPI (8) LTS (1) Mac (1) machine learning (1) matemática (9) mesa redonda (27) microcontroladores (1) microsoft (6) microst (1) muito além do GNU (165) musl (3) não viva de boatos (9) navegadores (5) NetBSD (7) newlib (1) nim (1) nintendo (1) novatec (17) novidades (1) nuvem (1) o meu ambiente de trabalho (3) off-topic (12) open source (84) OpenBSD (7) OpenShift (1) oracle (1) os vários sabores de Linux (43) padrim (2) palestras e eventos (5) partições (6) pentest (8) performance (1) pipewire (1) plan9 (1) playstation (1) processadores (30) professor Augusto Manzano (11) Programação (64) promoção (1) propagandas com Linux (8) ps4 (1) real-time. (1) Red Hat (23) redes (4) resenha nerd (4) Resumo da Semana do Dlins (2) resumo do Tux (19) retrospectiva Linux (1) risc-V (14) RISCV (13) rtos (1) runlevel (2) rust (12) segurança digital (24) servidor web (2) servidores (2) shell (9) shell script (8) sistema operacional (25) skarnet (1) smartphones (3) Software livre e de código aberto (151) sorteio (3) Steam (10) Steam no Linux (8) supercomputadores (4) suse (6) systemd (7) terminal (89) terminal de comandos (18) toca do tux (1) toybox (27) tutorial (6) Tux (3) unboxing (7) UNIX (17) UNIX Toolbox (14) vartroy (1) vga (1) virtualização (2) vulnerabilidade (6) wayland (5) web (1) whatsapp (1) whitehat (1) Windows Subsystem for Linux (2) wine (14) WoT (1) yash (1) ZFS (15) zsh (3)