Techniques Communes D'Exécution d'Api
Des sites Web sont conçus pour être consultés par des individus, et en tant que tels tendent à compter sur la vitesse relativement réduite de l'utilisateur pour éviter tous les goulots d'étranglement d'exécution. Cette technique échoue malheureux avec APIs parce qu'ils vont être consommés par d'autres serveurs avec les raccordements à grande vitesse, souvent conçus seulement avec leur propre exécution à l'esprit (ils ne cacheront pas vos réponses pour vous, et feront à la place exactement la même demande à maintes reprises). Concevoir votre api avec l'exécution à l'esprit peut aider à maintenir le serveur rapide même lorsque beaucoup de demandes sont faites, et aidera à s'assurer que les futures mises à niveau de matériel peuvent accomplir le leur désiré charge.
Cacher Des DonnéesSouvent des sites Web et des données de la demande d'APIs de la base de données chaque heure une demande est faits, quoique les données peuplassent les changements de réponse rarement. Ceci, combiné avec les techniques de normalisation de base de données a enseigné depuis le début du temps, signifie que chacune de ces demandes est probable faisant au moins des résultats se joignants d'une question à partir des tables multiples, probablement des questions de multiple. Si vos données ne changent pas cela souvent, considérez cacher la réponse. Par exemple, prenez le site Web visuel de Bob fictif. Chaque fois quelqu'un regarde des informations détaillées sur un film sur son site Web ou les demande par son api, son serveur court trois questions : une une question qui trouve le pleins titre du film, ligne de parcelle de terrain, et évaluation, une question différente qui court une question jointive pour rechercher l'information détaillée sur chacun des membres de fonte, et une question finale pour déterminer le statut de location du film. C'est un gaspillage de ressources colossal ; une fois qu'un film est libéré, la seule réponse qui changera est son statut de location. Cependant, chaque heure où la page est chargée, les données est demandée encore à la base de données. Elle ferait à bien plus de sens ou à l'utilisation une page statique pour les films libérés (peuplant le statut de location dynamiquement), ou pour le moins cachez l'information de tout le film et recherchez le statut de location dynamiquement.
Une utilisation plus futée des questions de base de donnéesBien que cacher des données est une excellente méthode de réduire le nombre de questions que vous employez, il n'est pas toujours approprié. Assurez-vous juste que vous obtenez les la plupart hors de chaque question que vous courez. Beaucoup de données doubles de périodes sont demandées tout en manipulant une demande simple ; ceci se produit souvent quand les différentes fonctions ont besoin des mêmes données, mais elles ne s'appellent pas ainsi elles ne partagent pas leurs résultats. Considérez l'un ou l'autre qui retouche votre manuscrit pour obtenir tous les eus besoin elle-même, puis passez outre des données aux fonctions qui l'exigent, ou à créer une couche d'abstraction avec un objet qui prend soin d'obtenir l'information de la base de données seulement une fois requis. Une fois que vous employez vos questions de base de données à leur plus plein, commencez le travail sur améliorer la vitesse des questions elles-mêmes. Ne commencez jamais les questions avec CHOISI * — de la demande seulement les champs vous avez besoin réellement. Examinez en outre vos questions et votre base de données. Essayez de s'assurer que les champs que vous basez votre choix sont allumés des clefs primaires ou au moins classé par le serveur de base de données. Cacher De RéponseConsidérez un cas d'un magasin visuel api, qui permet à des utilisateurs de demander l'information sur des films. Avec un petit changement de conception (statut de location mobile à sa propre question, plutôt que d'à lui fournir chaque demande), beaucoup de nouvelles occasions cachantes se présentent. Puisque la réponse ne change pas indépendamment de qui la demande, un proxy server peut être côté utilisé de serveur pour manipuler la réponse (c'est beaucoup plus facile avec le REPOS APIs qu'avec du SAVON). Le réglage des en-têtes appropriés pendant la vie de cachette (24 heures pour des films, et 30 minutes pour le statut de location) permettra à l'api d'écarter la majeure partie de son travail au proxy server. Accélérateurs de PHPIl y a quelques accélérateurs de PHP disponibles, qui peuvent avoir un effet énergique sur la vitesse de vos manuscrits. Chaque fois qu'un manuscrit de PHP est exécuté, il est analysé et compilé dans le code de byte par le moteur scripting de PHP's. Puisque, d'une manière générale, le manuscrit n'a pas changé entre les exécutions, c'est une perte énorme de durée de la transformation. Les accélérateurs de PHP cachent la version de code de byte des manuscrits, et s'exécutent que copie (être conscient de en change en le manuscrit original). Ceci sauve les étapes d'analyse et de compilation chaque fois que le manuscrit est exécuté parce que votre api s'appellera avec la grande fréquence, et a changé rarement ceci peut être l'épargne significative. Il est important de se rendre compte comment les accélérateurs de PHP travaillent pour éviter d'avoir des espérances anormales pour leurs résultats. Considèrent analyse et compilation heure pour manuscrit en tant que fixe coût — chaque fois que le manuscrit est consulté, indépendamment de la vitesse d'autres ressources (bases de données, par exemple) ou combien de traitement du manuscrit fini exige, ce coût doit être payé. En cachant le byte codez la copie du manuscrit économise seulement sur ce coût ; il n'expédiera pas vos questions de base de données ou d'autres processus de CPU-intensive. Un des accélérateurs de PHP les plus répandus est de Zend, dévoué a intitulé le 4/5 ] accélérateur de Zend PHP [. Je l'ai trouvé facile à installer et étais relativement heureux avec ses résultats. Après avoir amélioré à PHP5 peu de temps après son dégagement, je ne pouvais pas examiner d'autres accélérateurs qui ont depuis lors devenu disponibles. Un des autres accélérateurs que je suis parvenu à essayer le sigfault'd le processus appelant d'Apache sur une variété de mes manuscrits, soit ainsi sûr vous essai n'importe quel accélérateur vous employez intensivement avant de le mettre sur le système de production. c'est un article supplémentaire par Emanuela Hedrick
|
|||||||||||
|