Olá ?
Você pode encontrar a postagem completa sobre Técnicas de otimização de desempenho Java
Otimizar o desempenho do seu código é fundamental para o sucesso do seu perfil. Você sabia que a pesquisa da Akamai descobriu que 57% dos consumidores online abandonam um site se uma página demorar mais de 3 segundos para carregar? Nesta postagem, você aprenderá como otimizar seu código Java e melhorar o desempenho do seu código.
Não diga mais nada sobre OutOfMemoryError: não foi possível criar um novo thread nativo Erro.
Java virtual threads, introduzidos no Java 19, podem melhorar significativamente o desempenho do seu projeto.
Nas versões anteriores do Java, havia apenas 1 tipo de thread (threads clássicos) quando um thread clássico é criado, um thread do sistema operacional é alocado e o número de threads é limitado aos threads do sistema operacional.
A partir do JDK 19, você pode criar threads virtuais que são muito mais leves que os threads do sistema operacional e pode criar e executar milhares de threads virtuais em um aplicativo.
Para habilitar threads virtuais em um aplicativo Spring Boot, adicione o seguinte código ao seu application.properties.
spring.threads.virtual.enabled=true
Muitos problemas de desempenho surgem ao buscar dados desnecessários.
É uma prática recomendada carregar objetos apenas quando necessário.
Por exemplo, você pode usar FetchLazy no Hibernate, mas sempre tenha em mente que a estratégia de busca apropriada depende do caso de uso específico com o qual você está lidando.
buscar = FetchType.LAZY
Minimize o acesso ao disco armazenando em cache os dados acessados com frequência. Ao usar técnicas de cache adequadas, você pode reduzir a latência, evitar o congestionamento da rede e melhorar a disponibilidade do conteúdo.
A estrutura Spring fornece suporte para vários provedores de cache, incluindo, entre outros, Redis, Caffeie, Cache2k etc...
Ao escolher uma estratégia de geração de chaves em JPA, é importante selecionar aquela que melhor se adapta ao banco de dados que você está usando.
GenerationType.TABLE
Evite usar GenerationType.TABLE devido à sobrecarga de desempenho. Cada vez que uma chave primária é necessária, uma instrução LOCK é executada, juntamente com uma seleção e atualização na tabela de sequência.
GenerationType.IDENTITY
GenerationType.IDENTITY é mais adequado para MySQL porque MySQL usa campos de incremento automático e GenerationType.IDENTITY funciona bem com isso.
GenerationType.SEQUENCE
GenerationType.SEQUENCE normalmente é usado com PostgreSQL e Oracle. Ambos os bancos de dados suportam sequências, que são objetos de banco de dados que geram uma sequência de números exclusivos.
O Query Plan Cache do Hibernate é um recurso chave que pode melhorar o desempenho da sua aplicação.
Quando o hibernate executa uma consulta JPQL, a consulta SQL correspondente precisa ser gerada. Este processo envolve analisar a consulta para uma árvore de sintaxe abstrata, traduzir a árvore para uma consulta SQL e, finalmente, mapear o resultado de volta para objetos Java.
Depois que esse processo for concluído, o hibernate armazena o processo em cache para que não seja necessário executar essas etapas novamente para a mesma consulta.
Para habilitar e configurar o cache do Plano de Consulta use o seguinte código:
hibernate.query.plan_cache_max_size=2048 # Número máximo de planos de consulta no cache
hibernate.query.plan_parameter_metadata_max_size=128 # Tamanho máximo dos planos de consulta com metadados de parâmetro
Otimizar o desempenho do código Java é essencial para fornecer aplicativos rápidos e responsivos.
Aproveitando recursos modernos como threads virtuais, implementando carregamento lento, usando estratégias de cache eficientes e otimizando as operações do seu banco de dados, você pode melhorar significativamente o desempenho do seu aplicativo.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3