Allgemeine API Leistung Techniken
Web site sind entworfen, von den Einzelpersonen erreicht zu werden und als solche neigen, auf die verhältnismäßig langsame Geschwindigkeit des Benutzers zu bauen, um alle mögliche Leistung Engpässe zu vermeiden. Diese Technik fällt miserabel mit APIs aus, weil sie durch andere Bediener mit den Schnellanschlüssen verbraucht werden werden, häufig entworfen worden nur mit ihrer eigenen Leistung im Verstand (sie cachieren nicht Ihre Antworten für Sie und bilden anstatt genau die gleiche Antragzeit und Zeit wieder). Das Entwerfen Ihrer API mit Leistung im Verstand kann helfen, den Bediener schnell zu halten, selbst wenn viele Anträge gebildet werden, und wird helfen, sicherzugehen, daß zukünftiges Kleinteilaufsteigen ihre gewünschten Aufgaben vollenden kann.
Cachieren Von von DatenHäufig Web site und APIs Antragdaten von der Datenbank jede Zeit ein Antrag wird gebildet, obwohl die Daten verwendeten, die Warteänderungen selten zu bevölkern. Dieses, kombiniert mit den Datenbanknormalisierungtechniken unterrichtete seit dem Anfang der Zeit, bedeutet, daß jeder jener Anträge wahrscheinlich ist, mindestens eine Frage die verbindenen Resultate von den mehrfachen Tabellen bildend, vielleicht Mehrfachverbindungsstelle Fragen. Wenn Ihre Daten nicht die häufig ändern, erwägen Sie, die Antwort zu cachieren. Z.B. nehmen Sie die fiktiven des Bobs videoweb site. Jedesmal sieht jemand entweder ausführliche Informationen über einen Film auf seiner Web site an oder bittet um sie durch seine API, sein Bediener laufen läßt drei Fragen: eine Frage, die des vollen den Titel Films, die Plotlinie und das Veranschlagen findet, eine andere Frage, die eine verbindende Frage laufen läßt, um ausführliche Informationen über jedes der Formmitglieder zurückzuholen und eine abschließende Frage, zum des Mietstatus des Filmes festzustellen. Dieses ist eine gigantische Vergeudung der Betriebsmittel; sobald ein Film freigegeben wird, ist die einzige Antwort, die ändert, sein Mietstatus. Jedoch wird jede Zeit, welche die Seite, die Daten geladen wird, wieder von der Datenbank verlangt. Sie würde weit mehr Richtung entweder zum Gebrauch eine statische Seite für die freigegebenen Filme (Mietstatus dynamisch bevölkernd) bilden, oder wenigstens cachieren Sie Informationen des ganzes die Filmes und holen Sie den Mietstatus dynamisch zurück.
Intelligenterer Gebrauch von Datenbank-FragenObgleich, Daten ist zu cachieren eine ausgezeichnete Methode des Verringerns der Zahl Fragen, die Sie verwenden, es ist nicht immer angebracht. Stellen Sie einfach sicher, daß Sie die die meisten aus jeder Frage heraus erhalten, die Sie laufen lassen. Viele doppelte Daten der Zeiten werden bei der Behandlung eines einzelnen Antrags verlangt; dieses geschieht häufig, wenn unterschiedliche Funktionen die gleichen Daten benötigen, aber sie rufen sich nicht an, also teilen sie nicht ihre Resultate. Betrachten Sie irgendein, das Ihren Index überarbeitet, um alle erforderlichen Daten selbst zu erhalten, überschreiten Sie dann weg von den Daten zu den Funktionen, die ihn erfordern, oder zum Verursachen einer Abstraktion Schicht mit einem Gegenstand, der um Einholen von von Informationen von der Datenbank kümmert, nur wenn erforderlich. Sobald Sie Ihre Datenbankfragen zu ihrem vollsten verwenden, fangen Sie Arbeit über das Verbessern der Geschwindigkeit der Fragen selbst an. Beginnen Sie nie Fragen mit AUSERWÄHLTEM * — vom Antrag nur fängt Sie wirklich Notwendigkeit auf. Überprüfen Sie auch Ihre Fragen und Ihre Datenbank. Versuchen Sie, sicherzugehen, daß Sie gründen Ihre Vorwähler sind an entweder Primärschlüssel oder mindestens registriert durch den Datenbankbediener auffängt. WartecachierenBetrachten Sie einen Fall von einem videospeicher API, der Benutzern erlaubt, um Informationen über Filme zu bitten. Mit einer kleinen Designänderung (beweglicher Mietstatus zu seiner eigenen Frage, anstatt zum Versehen sie mit jedem Antrag), stellen sich viele neue cachierende Gelegenheiten dar. Weil die Antwort nicht ändert unabhängig davon, wem um sie bittet, kann ein proxy server die benutzte Bedienerseite sein, zum der Antwort anzufassen (dieses ist mit REST APIs als mit SEIFE viel einfacher). Die Einstellung der passenden Überschriften für das Pufferspeicherleben (24 Stunden für Filme und 30 Minuten für Mietstatus) läßt die API weg von die meisten seiner Arbeit zum proxy server zucken. PHP GaspedaleEs gibt einige vorhandene PHP Gaspedale, die einen drastischen Effekt auf der Geschwindigkeit Ihrer Indexe haben können. Jedesmal wenn ein PHP Index durchgeführt wird, wird er in Bytecode durch PHPs scripting Maschine analysiert und kompiliert. Weil, im Allgemeinen sprechend, der Index nicht zwischen Durchführungen geändert hat, ist dieses eine sehr große Vergeudung der Bearbeitungszeit. PHP Gaspedale cachieren die Bytecodeversion der Indexe und führen daß Kopie durch (Sein aufmerksam von irgendwelchen ändert zum ursprünglichen Index). Dieses speichert die Satzgliederung und Kompilation Schritte jede Zeit der Index wird durchgeführt, weil Ihre API mit großer Frequenz benannt wird, und selten dieses können sein bedeutende Sparungen änderte. Es ist wichtig, festzustellen, wie PHP Gaspedale arbeiten, um zu vermeiden, übermäßige Erwartungen für ihre Resultate zu haben. Betrachten Satzgliederung und Umwandlungszeit für Index als örtlich festgelegt Kosten — , jedesmal wenn der Index, unabhängig davon die Geschwindigkeit anderer Betriebsmittel (Datenbanken, z.B.) erreicht wird oder wieviel Verarbeitung des fertigen Indexes erfordert, diese Kosten zahlend sein müssen. Das Byte cachierend, kodieren Sie Kopie des Indexes speichert nur auf diesen Kosten; es beschleunigt nicht Ihre Datenbankfragen oder andere CPU-intensive Prozesse. Eins der überwiegendsten PHP Gaspedale ist von Zend, dutifully betitelte das Zend PHP [ 4/5 ] Gaspedal. Ich fand es einfach anzubringen und war mit seinen Resultaten verhältnismäßig erfreut. , verbessernd zu PHP5 kurz nach seiner Freigabe, war ich nicht imstande, andere Gaspedale zu prüfen, die haben, seit geworden vorhanden. Eins der anderen Gaspedale, die ich handhatte, sigfault'd zu versuchen der benennende Apache Prozeß auf einer Vielzahl meiner Indexe, ist so Sie Test sicher, welches Gaspedal Sie weitgehend benutzen, bevor Sie es auf das Produktion System setzen. dieses ist ein Artikel, der von Emanuela Hedrick
hinzugefügt wird
|
|||||||||||
|