Translate

sábado, 2 de agosto de 2025

Boas Praticas em Performance e otimização uma primeira olhada.

 

Boas Praticas em Performance e otimização uma primeira olhada.

4,424 followers

Falando sobre performance e otimização.

Salve jovem padawan, no artigo de hoje conversemos sobre um assunto pantanoso, que derruba 7 em 10 programadores, estou falando de performance e otimização de programas, infelizmente a pressa é inimiga da perfeição.

Como veremos no decorrer do artigo, o grande problema sempre é o fator tempo, somos todos coelhos da Alice: atrasados e fugindo da Rainha Louca, ops Rainha de Copas e no final quem paga é o programa implementado na máxima velocidade de desenvolvimento dentro possível, com uma qualidade mediana, atendendo o MVP.


Pense antes de codificar

Rascunhe seu programa em lápis e papel, desta forma consegue ter uma visão do todo, uma noção do caminho crítico e para o teste de mesa, num primeiro momento consegue-se visualizar pontos passiveis de melhoria e pontos onde o programa não se comporta da maneira espera.

Existem inúmeras ferramentas visuais no mercado, que auxiliam na depuração calculando o uso de memória, uso de CPU e gargalos do sistema, para o ambiente Mainframe existe o Omegamon e o APA. Ferramentas que em seus relatórios apresentam estatísticas fabulosas sobre os problemas encontrado no código, pontos de gargalo e tempo de execução.


Uso de memória

Cuidado ao codificar, não crie variáveis em excesso, lembre-se sempre de inicializar as variáveis no princípio do código, desta forma economizam-se ciclos de CPU gastos desnecessariamente, forçando paradas no processamento para inicializar as variáveis. Lembre-se I/O seja em acessos a discos e sub-programas externo estouram o Time.

Cuidado ao utilizar arrays e vetores, pois ao criar grandes tabelas internas estará consumindo memoria desnecessariamente e prejudicara o bom funcionamento do seu programa, principalmente em escala, quantos mais usuários maior queda de performance.

Verifique as variáveis não utilizadas, que gastam espaço em memória, pense num programa utilizado por milhares de usuários, com centenas de milhares de requisição, ao final de um ano, quanto de memória poderia ter sido economizado, quanto de processamento ou ciclos de CPU, gasto em gerenciamento de memória desnecessário. Imagine a pegada ecológica, gasto de eletricidade e CO2 liberado.


Ciclos de CPU

A pressa é inimiga da perfeição, muitas vezes criamos logica em que o programa consome desnecessariamente processamento, movendo variáveis semi-utilizadas ou mesmo sem nenhuma utilização, atente-se a código morto e rotinas que entram e saem sem agregar nenhum valor ao processo.

Pense no custo em CPU de chamadas repetida a functions, arrow-functions e programas externo, a cada parada de processo e pulo para outro programa e o próprio retorno ao programa chamador.

Trabalhe apenas com os campos da tabela que serão utilizados em outputs ou cálculos, o trafego de dados além da memória, gera gasto de CPU indevidos. Muitas vezes é mais produtivo, usar arquivo sequencial da tabela, através de unload, usar aplicativos específicos para ETL, a exemplo SORT do Mainframe.


Espaço em Disco

Em tempos de cloud computer e processamento distribuído, desvalorizávamos o impacto do processamento, em gravar dados desnecessariamente em disco, informações que nunca serão utilizadas e degradam o ambiente, obrigando a adquirir mais e mais espaço em disco.

Fazendo o programa perder milissegundos cruciais na busca da informação num disco imenso e cada vez mais abarrotado, uma política de dados é importante para evitar esse viés.


Os perigos de laços estilo While

Quando codificar While cuidado com os laços infinitos. Às vezes um teste de mesa incompleto deixa uma situação onde o FLAG de saída, pode parecer obvio, mas grandes programadores caíram em situação semelhante, um IF mal planejado e um FLAG descontrolado e surge o caos, com looping infinito ou anomalias de difícil reprodução.


Os perigos de laço estilo FOR

O perigo do FOR não é tão drástico quanto o While, mas devido a sua quantidade de uso é muito prejudicial a longo prazo, obrigando a aquisição de mais hardware inutilmente, uma solução bem simples é sair do laço assim que a solução for encontrada.


Os perigos de IF inúteis

Muitas vezes o programador está cheio de boas intenções e cria uma sequência sem fim de IFs. Mas para garantir a qualidade dos dados e o controle de fluxo do programa, porem muitas vezes são desnecessários, procure pensar numa lógica do IF master e somente se ele funciona gerar os outros testes em IF, quanto menos paradas para decisão mais performático e melhor será seu programa.

Use comandos em estilo EVALUATE, SWITCH para um controle de fluxo mais eficiente e atente-se a não usar ELSEs em demasia, dificultam muito a análise e ajudam a gerar erros de simpatia, pois às vezes confundimos o lugar do ELSE e no teste pulamos o IF.

Outro grande problema e a quantidade de paradas no processamento, obrigando o programa a funcionar como conta gostas.


Espionando programas em Mainframe

Como disse anteriormente existem algumas ferramentas fabulosas em ambiente Z/OS, o OMEGAMON e o APA monitoram e acompanham a performance de programas em ambiente Mainframe, indicando os custos de CPU / Memória e rotinas em looping e consumos/acessos diversos. Vale a pena conhecer o manual técnico e explorar esta ferramenta.

Em banco de dados DB2 existe o comando Explain que gera estatísticas de acesso e caminhos para melhorias tais como criar índices, reorg de tabelas, partição de ambientes e etc, auxiliando o DEV a criar querys mais performáticas.


Conclusão

Caro padawan, reconheço que fui superficial e que deixei pontos a esclarecer, mas o objetivo deste artigo. Foi fazê-lo pensar, a ter cuidado quando codifica, apesar das máquinas terem caído o custo, em quantidade, o uso de memória e CPU desnecessário tiram a competitividade da empresa, gerando custos ocultos e gerando prejuízos a longo prazo.

Como exercício de imaginação, pense um Banco com milhares de agências e milhões de clientes, usando os serviços 24 horas por dia, 7 dias por semana e 365 dias no ano. Quanto custara ao final do ano alguns IFs desnecessários e 2 segundos desperdiçados em loops inúteis?

Por isso pense bem ao codificar, faça teste de mesa, use papel e lápis para ajudar em seu trabalho, verifique os IF e loopings, não use campos de tabelas desnecessariamente e boa sorte.

Espero ter ajudado. Bom curso a todos.


Article content


Article content

Mais momento jabá, quem diria que já passou retrospectiva do meu 44° aniversario, tantas aventuras, tantos momentos únicos, memórias em imagens de momentos mágicos da vida do Tiozão visite meu vídeo e veja para onde fui desta vez: https://www.youtube.com/watch?v=sBgA0nvtpdU


Bom curso a todos.

Article content

https://www.linkedin.com/in/vagnerbellacosa/


Article content

https://github.com/VagnerBellacosa/

Pode me dar uma ajudinha no YouTube?

Article content

https://www.youtube.com/user/vagnerbellacosa


sexta-feira, 1 de agosto de 2025

🌌 Grande lista de animes Isekai entre 2000 → 2010

Bellacosa Mainframe e a grande lista de isekais entre 2000 e 2010


🌌 Grande lista de animes Isekai entre  2000 → 2010

O período entre 2000 e 2010 foi fundamental para a consolidação do gênero isekai, muito antes da explosão que ocorreria na década seguinte. Embora o conceito de viajar para outro mundo já existisse em obras anteriores, foi nessa época que diversos animes ajudaram a estabelecer muitos dos elementos que hoje são considerados clássicos do gênero.

Séries como Inuyasha, The Twelve Kingdoms, .hack//Sign, Digimon Adventure, El-Hazard, Fushigi Yuugi e The Vision of Escaflowne apresentavam protagonistas transportados para universos paralelos repletos de magia, criaturas fantásticas, conflitos políticos e jornadas de autodescoberta. Diferentemente dos isekais modernos, essas obras costumavam dedicar mais tempo à construção do mundo, ao desenvolvimento dos personagens e às consequências emocionais da viagem entre realidades.

Outro aspecto marcante era a diversidade temática. Nem todos os protagonistas se tornavam heróis superpoderosos. Muitos enfrentavam dificuldades reais para se adaptar ao novo ambiente, aprender regras desconhecidas e encontrar seu lugar naquele mundo.

Essa geração de animes serviu como ponte entre os pioneiros do gênero e a grande onda de isekais que surgiria após 2010 com títulos como Sword Art Online, Re:Zero e Mushoku Tensei. Por isso, a década de 2000 representa uma fase essencial na evolução do isekai, combinando criatividade, experimentação e narrativas que ajudaram a moldar um dos gêneros mais populares da animação japonesa.



2000

  • Digimon Adventure 02 (1999–2001)
    Crianças voltam ao Digimundo com novos parceiros e inimigos digitais.
    🔎 Curiosidade: Embora Digimon seja discutido como “isekai parcial”, influenciou muitos animes posteriores com o conceito de viajar a outro mundo.



  • Escaflowne: The Movie (2000)
    Reinterpretação sombria da série The Vision of Escaflowne (1996).
    🔎 Curiosidade: O filme mudou radicalmente o tom — menos romance escolar, mais fantasia e tragédia.


2001



  • Final Fantasy: Unlimited
    Dois irmãos seguem pistas do desaparecimento dos pais e acabam em um mundo paralelo cheio de magia e monstros.
    🔎 Curiosidade: Inspirado na franquia Final Fantasy, mas foi criticado por ser muito diferente dos jogos.


2002



  • Inuyasha
    Kagome, estudante moderna, é transportada ao Japão feudal, onde conhece o meio-youkai Inuyasha e busca a Joia de Quatro Almas.
    🔎 Curiosidade: Um dos maiores sucessos do gênero, misturando romance, comédia e ação. Tornou-se ícone mundial.



  • .hack//SIGN
    Jogadores ficam presos dentro de um MMORPG misterioso e precisam desvendar os segredos do jogo.
    🔎 Curiosidade: Considerado precursor direto de Sword Art Online.


2003



  • Wolf’s Rain (isekai temático)
    Lobos viajam em busca do “Paraíso”, mundo alternativo onde podem sobreviver.
    🔎 Curiosidade: Não é isekai clássico, mas considerado por expandir o gênero em alegorias.


2004



  • Monster Rancher (Digimon-style, 1999–2001, reprisado em 2004 no Ocidente)
    Um garoto é transportado para o mundo dos monstros ao usar um disco mágico.
    🔎 Curiosidade: Competiu com Pokémon e Digimon em popularidade, mas focava mais em treinar monstros individualmente.


2005



  • Tsubasa: Reservoir Chronicle
    Syaoran e Sakura viajam por diversos mundos paralelos para recuperar as memórias dela.
    🔎 Curiosidade: Reúne personagens de várias obras da CLAMP, funcionando como multiverso.



  • Fushigi Yûgi: Genbu Kaiden (OVA)
    Prequel de Fushigi Yûgi, mostrando outra sacerdotisa transportada para o mundo do livro.


2006



  • The Twelve Kingdoms (retransmitido até 2006)
    Estudante vai parar em um reino alternativo onde descobre ser herdeira de uma monarquia.
    🔎 Curiosidade: Inspirado na mitologia chinesa, é considerado “isekai de prestígio”, com tom mais sério.


2007



  • Mär (Marchen Awakens Romance)
    Ginta, estudante frágil, vai para o mundo de Mär Heaven, onde participa de batalhas usando artefatos mágicos (ÄRMs).
    🔎 Curiosidade: Criado pelo autor de Flame of Recca, foi sucesso no público infantil.

  • Guardian of the Sacred Spirit (Seirei no Moribito) (isekai parcial)
    Explora elementos de mundos paralelos em fantasia épica japonesa.


2008



  • Amatsuki
    Estudante é transportado ao período Edo através de uma simulação de realidade virtual e fica preso.
    🔎 Curiosidade: Mistura história japonesa real com fantasia sobrenatural.


2009



  • Kyo Kara Maoh! (3ª temporada)
    Um garoto comum se torna o rei de um mundo mágico habitado por demônios.
    🔎 Curiosidade: Conhecido como um dos primeiros isekai shounen-ai (com romance BL implícito).


2010



  • Digimon Xros Wars
    Nova geração de crianças transportadas ao Digimundo, agora com fusão de digimons.
    🔎 Curiosidade: Essa fase dividiu fãs, mas manteve vivo o conceito de “isekai digital”.