Técnicas Comuns Do Desempenho do Api

Os Web site são projetados ser alcançados por indivíduos, e como esta'n tendem a confiar na velocidade relativamente lenta do usuário para evitar todos os bottlenecks do desempenho. Esta técnica falha miseràvel com APIs porque estão indo ser consumidos por outros usuários com as conexões de alta velocidade, projetadas frequentemente somente com seu próprio desempenho na mente (não cache suas respostas para você, e farão preferivelmente exatamente o mesmo tempo do pedido e o tempo outra vez). Projetar seu API com desempenho na mente pode ajudar manter o usuário rápido mesmo quando muitos pedidos estão sendo feitos, e ajudará assegurar-se de que os melhoramentos futuros da ferragem possam realizar suas tarefas desejadas.

Nota 
  

Muitos Web site são projetados mal ou parecem faltar toda a sorte do projeto qualquer. Eu vi um local que requeresse 10 perguntas da base de dados começar a página, a seguir uma pergunta adicional para cada artigo em sua base de dados. Com mais de 40 artigos em sua base de dados, havia aproximadamente 50 perguntas que estão sendo feitas cada vez que a página do índice carregou. Esta técnica estava falhando horribly para um Web site que recebe relativamente poucas batidas. Não duraria minutos se fosse consumida automaticamente, e eu duvido que duraria mais do que alguns segundos sob o efeito de Slashdot. Todas estas perguntas da base de dados eram bàsicamente pointless também; o inventário da firma mudou lentamente, assim que uma página de estática gerada uma vez por a semana do mesmo certificado funcionaria apenas também para o usuário da extremidade, mas seria diversas ordens de valor mais rapidamente.

Caching Dados

Frequentemente os Web site e do pedido de APIs dados da base de dados cada hora um pedido são feitos, mesmo que os dados se usem povoar raramente as mudanças da resposta. Isto, combinado com as técnicas do normalization da base de dados ensinou desde o começo do tempo, significa que cada um daqueles pedidos é provável fazendo ao menos resultados juntando de uma pergunta das tabelas múltiplas, possivelmente perguntas do múltiplo. Se seus dados não estiverem mudando aquele frequentemente, considere caching a resposta.

Para o exemplo, faça exame do Web site video do Bob fictional. Todas as vezes alguém vê informação detalhada sobre um filme em seu Web site ou pede-a com seu API, seu usuário funciona três perguntas: uma pergunta que encontra o título do filme, a linha do lote, e avaliar cheios, uma outra pergunta que funcione uma pergunta juntada para recuperar informação detalhada em cada um dos membros do molde, e uma pergunta final para determinar o status rental da película. Este é um desperdício de recursos gigantesco; uma vez que um filme é liberado, a única resposta que mudará é seu status rental. Ainda, cada hora onde a página é carregada, os dados é pedida outra vez da base de dados. Faria a distante mais sentido ao uso uma página de estática para as películas liberadas (que povoam o status rental dinâmicamente), ou a informação muito de menos no esconderijo toda a película e recuperaria o status rental dinâmicamente.

Nota 

Você observou provavelmente que, porque o esconderijo terminará provavelmente acima em uma base de dados, eu reduzi realmente somente a contagem da pergunta de 3 a 2. Não olha como uma melhoria drástica, mas é. A pergunta juntada que olha acima de informação detalhada para os membros do molde está indo uma ordem de valor mais lenta do que um lookup baseado em uma chave preliminar, assim lá é um saving grande lá. Você pode também cache os dados do filme em um formulário perto de seu formulário final da correia fotorreceptora, conservando em todo o processar necessitado geralmente ir da base de dados ao Web page. Você necessitará dois esconderijos neste exemplo, um para o Web site e um para o API.

Uso mais esperto de perguntas da base de dados

Embora caching dados é um método excelente de reduzir o número das perguntas que você se usa, ele não é sempre apropriado. Certifique-se apenas que você está começando o a maioria fora de cada pergunta que você funciona. Muitos dados duplicados das épocas são pedidos ao segurar um único pedido; isto acontece frequentemente quando as funções diferentes necessitam os mesmos dados, mas não se chamam assim que não compartilham de seus resultados. Considere qualquer um que reworking seu certificado para obter todos os dados requeridos próprios, passe-o então fora dos dados às funções que o requerem, ou a criar uma camada do abstraction com um objeto que tome cuidado de obter a informação da base de dados somente quando requerido.

Uma vez que você está usando suas perguntas da base de dados ao seu mais cheio, comece o trabalho em melhorar a velocidade das perguntas ela mesma. Nunca comece perguntas com SELETO * — do pedido somente os campos você necessita realmente. Examine também suas perguntas e sua base de dados. Tente assegurar-se de que os campos que você baseia sua seleção sejam sobre chaves preliminares ou posicionado ao menos pelo usuário da base de dados.

Caching Da Resposta

Considere um exemplo de uma loja video API, que permita que os usuários peçam a informação em películas. Com uma mudança pequena do projeto (status rental movente a sua própria pergunta, melhor que a a fornecer com cada pedido), muitas oportunidades caching novas apresentam-se. Porque a resposta não muda não obstante quem a pede, um proxy server pode ser lado usado do usuário para segurar a resposta (este é muito mais fácil com DESCANSO APIs do que com SABÃO). Ajustar os encabeçamentos apropriados para a vida do esconderijo (24 horas para películas, e os 30 minutos para o status rental) permitirá que o API shrug fora de a maioria de seu trabalho ao proxy server.

Accelerators de PHP

Há alguns accelerators de PHP disponíveis, que podem ter um efeito drástico na velocidade de seus certificados. Cada vez que um certificado de PHP é executado, está analisado gramaticalmente e compilado no código do byte pelo motor scripting de PHP. Porque, geralmente falando, o certificado não mudou entre execuções, este é um desperdício enorme do tempo processando. Os accelerators de PHP cache a versão do código do byte dos certificados, e executam-na que cópia (ser mindful de alguns muda ao certificado original). Isto conserva as etapas analisar gramaticalmente e de compilação cada vez que o certificado está executado porque seu API estará chamado com freqüência grande, e mudou raramente este pode ser economias significativas.

É importante realizar como os accelerators de PHP trabalham para evitar de ter expectativas impróprias para seus resultados. Considera analisar gramaticalmente e compilação hora para certificado como fixo custo — cada vez que o certificado é alcançado, não obstante a velocidade de outros recursos (bases de dados, para o exemplo) ou quanto processar o certificado terminado requer, este custo deve ser pago. Caching o byte codifique a cópia do certificado conserva somente nesse custo; não apressará suas perguntas da base de dados ou outros processos de CPU-intensive.

Um dos accelerators os mais prevalent de PHP é de Zend, dutifully intitulou o 4/5 ] de accelerator de Zend PHP [. Eu encontrei fácil de instalar e fui relativamente pleased com seus resultados. Promovendo a PHP5 logo depois que sua liberação, mim era incapaz de testar outros accelerators que têm desde tornado disponíveis. Um dos outros accelerators que eu controlei tentar o sigfault'd o processo de chamada de Apache em uma variedade de meus certificados, seja assim certo você teste qualquer accelerator você usa extensivamente antes de o pôr sobre o sistema de produção.

este é um artigo adicionado por Emanuela Hedrick


Disclaimer: Nosso Web site não é responsável para a informação contida por este artigo. Este artigo em nenhuma maneira reflete as vistas, as opiniões, os pensamentos ou a opinião da equipe de funcionários do diretório dos artigos.

Observação da tradução: O artigo "técnicas comuns do desempenho do API" foi traduzido usando um serviço de tradução automatizado. Nós desculpamo-nos sincerely por todos os erros da tradução que ocorram. Obrigado compreendendo.

Online: 541 users browsing the articles directory