Tecniche Comuni Di Prestazioni di Api


  Share  
|

I Web site sono destinati per essere raggiunti dagli individui e come tali tendono a contare sulla bassa velocità relativamente dell'utente per evitare tutti gli ingorghi di prestazioni. Questa tecnica viene a mancare misero con APIs perché stanno andando essere consumati da altri assistenti con i collegamenti ad alta velocità, progettati spesso soltanto con le loro proprie prestazioni in mente (vi non nasconderanno le vostre risposte per e preferibilmente faranno esattamente la stessa richiesta ripetutamente). La progettazione del vostro api con le prestazioni in mente può contribuire a mantenere l'assistente veloce anche quando molte richieste stanno facende e contribuirà a accertarsi che gli aggiornamenti futuri dei fissaggi possano compire le loro mansioni volute.

Nota

Molti Web site sono progettati male o sembrano difettare di tutta la specie del disegno qualunque. Ho visto un luogo che ha richiesto 10 domande della base di dati iniziare la pagina, quindi una domanda supplementare per ogni articolo nella loro base di dati. Con più di 40 articoli nella loro base di dati, ci erano circa 50 domande che sono fatte ogni volta che la pagina di indice ha caricato. Questa tecnica stava venendo a mancare horribly per un Web site che riceve relativamente pochi colpi. Non avrebbe durato i minuti se fosse consumata automaticamente e dubito di che avrebbe durato più di alcuni secondi sotto l'effetto di Slashdot. Tutte queste domande della base di dati erano basicamente superflue pure; l'inventario della ditta è cambiato lentamente, in modo da una pagina statica generata una volta alla settimana dallo stesso scritto avrebbe funzionato appena pure per l'utilizzatore finale, ma sarebbe stata parecchi ordini di grandezza più velocemente.

Nascondere I Dati

Spesso sia i Web site che dati di richiesta di APIs dalla base di dati ogni tempo una richiesta è fatto, anche se i dati hanno usato popolare raramente i cambiamenti di risposta. Ciò, unito con le tecniche di normalizzazione della base di dati ha insegnato dall'inizio del tempo, significa che ciascuna di quelle richieste è probabile facendo almeno i risultati unentesi di una domanda dalle tabelle multiple, possibilmente domande di multiplo. Se i vostri dati non stanno cambiando spesso quello, studii la possibilità di nascondere la risposta.

Per esempio, prenda il video Web site del Bob fictional. Sempre qualcuno osserva le informazioni dettagliate su un film sul suo Web site o le chiede con il suo api, il suo assistente fa funzionare tre domande: una domanda che trova il titolo dei film, la linea del diagramma e la valutazione pieni, un'altra domanda che fa funzionare una domanda unita per richiamare le informazioni dettagliate su ciascuno dei membri del getto e una domanda finale per determinare la condizione locativa della pellicola. Ciò è uno spreco di risorse gigantesco; una volta che un film è liberato, l'unica risposta che cambierà è la relativa condizione locativa. Tuttavia, ogni tempo che la pagina è caricata, i dati è chiesto ancora dalla base di dati. Renderebbe a molto più senso o ad uso una pagina statica per le pellicole liberate (che popolano dinamicamente condizione locativa), o per lo meno nasconda le informazioni di tutta la pellicola e richiami la condizione locativa dinamicamente.

Noti

Probabilmente avete notato che, perché il nascondiglio probabilmente si concluderà in su in una base di dati, ho ridotto realmente soltanto il conteggio di domanda da 3 a 2. Non assomiglia ad un miglioramento drastico, ma è. La domanda unita che cerca le informazioni dettagliate per i membri del getto sta andando un ordine di grandezza più lento di un'occhiata basata su una chiave primaria, così là è un saving grande là. Potete anche nascondere i dati di film in una forma vicino alla relativa forma finale di fotoricettore, risparmiante su tutta la elaborazione stata necessaria generalmente per andare da base di dati al Web page. Avrete bisogno di due nascondigli in questo esempio, di uno per il Web site e di uno per l'api.

Uso più astuto delle domande della base di dati

Anche se nascondere i dati è un metodo eccellente di riduzione del numero di domande che usate, esso non è sempre adatto. Assicurisi appena che state ottenendo il la maggior parte da ogni domanda funzionate. Molti dati duplicati di periodi sono chiesti mentre maneggiano una singola che richiesta; ciò accade spesso quando le funzioni differenti hanno bisogno degli stessi dati, ma non si denominano in modo da non ripartiscono i loro risultati. Consideri uno che riprende il vostro scritto per ottenere tutti i dati richiesti in se, allora passi fuori dei dati alle funzioni che lo richiedono, o a generare uno strato di astrazione con un oggetto che prende la cura di ottenere le informazioni dalla base di dati soltanto una volta richiesto.

Una volta che state usando le vostre domande della base di dati al loro più pieno, cominci il lavoro sul migliorare la velocità delle domande essi stessi. Non inizi mai le domande con PRESCELTO * — dalla richiesta soltanto i campi realmente avete bisogno di. Inoltre esamini sia le vostre domande che la vostra base di dati. Provi a accertarsi che i campi che basate la vostra selezione sopra siano chiavi primarie o spostato ad incrementi almeno dall'assistente della base di dati.

Nascondere Di Risposta

Consideri un caso di video deposito api, che permette che gli utenti chiedano le informazioni sulle pellicole. Con un piccolo cambiamento di disegno (condizione locativa commovente alla relativa propria domanda, piuttosto che a fornirla ogni richiesta), molte nuove occasioni nascondenti si presentano. Poiché la risposta non cambia senza riguardo a chi la chiede, un proxy server può essere lato usato dell'assistente per maneggiare la risposta (questo è molto più facile con RESTO APIs che con SAPONE). La regolazione delle intestazioni adatte per vita del nascondiglio (24 ore per le pellicole e 30 minuti per condizione locativa) permetterà che l'api si liberi da la maggior parte del relativo lavoro al proxy server.

Acceleratori di PHP

Ci sono alcuni acceleratori di PHP disponibili, che possono avere un effetto drastico sulla velocità dei vostri scritti. Ogni volta che uno scritto di PHP è eseguito, è analizzato e compilato nel codice di byte dal motore scripting del PHP. Poiché, generalmente parlando, lo scritto non è cambiato fra le esecuzioni, questo è uno spreco enorme di tempo di lavorazione. Gli acceleratori di PHP nascondono la versione di codice di byte degli scritti ed eseguono che copia (essere conscio di c'è ne cambia allo scritto originale). Ciò conserva i punti della compilazione e di analizz ogni volta lo scritto è eseguito perché il vostro api sarà denominato con frequenza grande ed ha cambiato raramente questo può essere risparmio significativo.

È importante rendersi conto come gli acceleratori di PHP funzionano per evitare di avere aspettative eccessive per i loro risultati. Considera analizz e compilazione tempo per scritto come fisso costo — ogni volta che lo scritto è raggiunto, senza riguardo alla velocità di altre risorse (basi di dati, per esempio) o quanto elaborazione dello scritto rifinito richiede, questo costo deve essere paid. Nascondendo il byte codifichi la copia dello scritto soltanto risparmia su quel costo; non accelererà le vostre domande della base di dati o altri processi di CPU-intensive.

Uno degli acceleratori di PHP più prevalenti proviene da Zend, dutifully ha intitolato il 4/5 ] di acceleratore di Zend PHP [. Lo ho trovato facile installare ed ero relativamente pleased con i relativi risultati. Aggiornando a PHP5 subito dopo il relativo rilascio, non potevo esaminare altri acceleratori che hanno da allora diventato disponibili. Uno degli altri acceleratori che sono riuscito a provare il sigfault'd il processo di chiamata del Apache su una varietà di miei scritti, così è sicuro voi prova quale acceleratore usate estesamente prima di metterlo sul sistema di produzione.

ciò è un articolo aggiunto da Emanuela Hedrick


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions