Hoje eu estava conversando com alguns amigos do Grupo MSN sobre otimização de desempenho de programas ASP.net.
Agora vamos resumir os métodos de otimização:
1. Otimização de banco de dados, incluindo otimização de estrutura de tabela, otimização de índice, otimização de instrução SQL e otimização de procedimento armazenado
2. Otimize o ViewState
3. Use cache
4. Gerar páginas estáticas (principalmente para front-end de sistemas de publicação de informação pouco interativos)
5. Use IIS/Apache front-end para lidar com solicitações de páginas estáticas, imagens e arquivos js
6. Algoritmo de otimização
7. Todos podem adicionar
. Em relação ao ajuste de desempenho, o conselho de quase todos os especialistas é: Se não houver uma medição exata de desempenho, não execute o ajuste de desempenho. O ajuste sem teste de desempenho de benchmark basicamente não terá outros benefícios, exceto tornar o código do sistema confuso. O efeito obtido ao trabalhar duro para melhorar um algoritmo de 0,1 segundos para 0,01 segundos geralmente será perdido devido a uma instrução de seleção incorreta.
Portanto, os métodos anteriores não são uma panacéia. Para ajustar, você deve primeiro entender onde o sistema está lento. Nunca procure atendimento médico com pressa. O conteúdo a seguir vem da minha experiência pessoal de trabalho. Nem todos os sistemas podem ser aplicados, lembre-se! ! ! !
Vamos analisar estes quatro métodos de ajuste:
Para aplicativos do tipo OA/sistema de gerenciamento de negócios, a otimização do banco de dados costuma ser um ponto-chave por vários motivos:
1.CRUD no banco de dados é a operação mais comum nesses sistemas.
2. As operações no sistema de banco de dados geralmente causam E/S de disco (porque os arquivos e logs do banco de dados são salvos no disco)
3. As operações de aplicativos no sistema de banco de dados geralmente ocorrem entre processos ou mesmo entre máquinas. (E/S de disco + E/S de rede, não importa quão rápida seja a CPU ou quanta memória tenha, está além do nosso alcance)
Portanto, essas operações no banco de dados costumam ser o gargalo de desempenho de todo o sistema.
Então, conhecendo essa orientação geral, como saber quais SQL ou procedimentos armazenados estão lentos? Isso requer a combinação do criador de perfil do banco de dados.
Para SQL Server, você pode ler este artigo.
http://www.microsoft.com/china/msdn/library/data/sqlserver/Profiler.mspx?mfr=true
Para Oracle, você pode ler este artigo
http://www.javaeye.com/post/117389
2. ViewState, este Dongdong é relativamente grande e terá um certo impacto nas aplicações da Internet. Quanto à sua otimização, o jardim já falou sobre isso, então você mesmo pode pesquisar.
3. Minha opinião sobre o uso de cache não é muito consistente com a de vários amigos do Grupo MSN. Um amigo do Grupo MSN acredita que o cache pode ser um conjunto de variáveis estáticas ou algumas variáveis controladas por um controlador de cache. Pessoalmente, acho que esse cache pode ter um bom desempenho em um ambiente de servidor único. Em um ambiente multiservidor, esse cache se tornará um gargalo de desempenho, porque o aplicativo ou controlador de cache precisa garantir cuidadosamente o conteúdo do cache de vários processos. . consistente. Este processo reduz bastante a escalabilidade do programa. Considere um Web Farm com 100 servidores. Uma modificação de cache em um processo requer notificação e confirmação de que os 99 servidores restantes foram alterados corretamente.
Para isso, o memcache é uma solução relativamente boa. O famoso produto wiki mediawiki o utiliza como servidor de cache. Memcache também possui uma API de cliente .net.
4. Não entendo muito bem, por favor, dê alguns conselhos de especialistas
. 5. Existem muitas introduções na Internet, especialmente em Java. Existem muitas introduções sobre Apache com Tomcat. Google você mesmo.
6. Esta otimização é a mais complicada e o efeito pode ser o menos óbvio. Se for necessário, deixe os oito imortais cruzarem o mar e mostrarem seus poderes mágicos.
http://www.cnblogs.com/ncindy/archive/2006/11/07/553533.html