Optimizarea php
Există o serie de reguli care ar trebui urmate pentru a crește viteza de aplicatii PHP. Regulile sunt simple și nu necesită modificări semnificative în aplicațiile existente. Materialul se referă la nuanțele de setările de cod PHP și de sistem. Câțiva pași simpli va contribui la optimizarea aplicației PHP de mai multe ori.
FastCGI - aceasta este una dintre opțiunile de conectare PHP la serverul web. Acesta este cel mai bine utilizat în conjuncție cu Nginx. PHP-fpm (fastcgi container pentru PHP) și implicit Nginx de sprijin de colaborare, și foarte ușor de configurat.
După cum se face de obicei script PHP? PHP deschide un fișier cu codul, compilați-l, și apoi se execută. Deoarece fișierele pot fi mai multe, procesul de deschidere, citire și compilare poate lua o mulțime de timp și resurse. Dacă fișierele nu se schimba, continuând compilarea nu se poate face. Mai bine să o facă o dată și pentru a cache rezultatul.
Aceasta este ceea ce face ca modulul opCache. Rezultatul este prima compilatie este stocat în memoria cache, care va rula PHP. Astfel, se va accelera executarea de către absența procesului de compilare grele. Când fișierele sunt modificate, modulul se resetează memoria cache și să ofere o recompilarea. Pe scurt, acest modul o face economii de resurse foarte util, chiar și fără a fi nevoie să se adapteze într-un fel.
În versiunea PHP5.5 + Acest modul este livrat într-un ansamblu standard de. În versiunile anterioare, trebuie să instalați unitatea de tine. Puteți verifica disponibilitatea după cum urmează:
# Concluzie Blank ar însemna că modulul nu este
Dacă versiunea este prea devreme, cel mai bine este de a utiliza APC:
# Aceasta este o opCache alternativă, dar face același lucru
cache
Codul este adesea doar lent. De exemplu, apelurile către API-ul din afara, prelevarea de probe grele din bazele de date, procesarea de fișiere mari, etc. În acest caz, punerea în cache de date ar trebui să fie folosit ca un instrument de optimizare.
Pentru PHP cele mai populare soluție pentru cache este Memcache. Foarte ușor de utilizat și foarte rapid, deoarece Acesta susține doar cel mai necesar.
Dacă ați instalat doar PHP, asigurați-vă că ați configurat parametrii cei mai importanți pentru site-ul tau. Se poate salva, de asemenea resurse:- memory_limit = 32M - nu ar trebui să setați acest parametru prea mare. Creșterea aceasta numai în cazuri extreme.
- zlib.output_compression = Dezactivat. zlib.output_compression_level = -1 - compresie face o mai bună utilizare a Web server-side.
- max_execution_time = 5 - timpul maxim script-ul nu ar trebui să fie mai mult de 5 secunde. Creșterea numai în cazuri extreme.
- zend.enable_gc = On - include un colector de gunoi (care este de a optimiza memoria pentru fundal).
- expose_php = Dezactivat - PHP nu trimite versiunea sa cu răspunsul.
- report_memleaks = On - va fi trimis la informațiile de jurnal de eroare cu privire la detectarea scurgerilor de memorie.
- post_max_size = 4M. upload_max_filesize = 4M - setați dimensiunea maximă a cererilor și descărcări. Aceasta vă protejează de procesarea cererilor enorme, care ar trebui să fie pe site.
În mod implicit, PHP stochează fișierele de sesiune. Aceasta este o soluție destul de eficientă. Dar când fișierul devine foarte multe (zeci de mii), care lucrează cu ei va încetini în același folder (în special sisteme de fișiere). În acest caz, este mai bine să se mute la sesiunea Memcache (php.ini):
# Localhost: 11211 este gazda standard si portul memcache
cod de optimizare
Amintiți-vă, OEP - este întotdeauna foarte lent. Obiectele au nevoie pentru a crea, undeva pentru a stoca și distruge. Nu folosiți obiecte, iar dacă nu aveți nevoie. De exemplu, aici:
# Creați un obiect numai în scopul de a salva datele în baza de date
# Utilizați lista de obiecte numai de a se retrage de proprietate
În aceste exemple, utilizarea OEP nu are prea mult sens. Dar consumă resurse. Încercați să utilizați matrice atunci când nu sunt necesare obiecte:
# Evitați crearea unui obiect, funcția stochează pur și simplu datele din matrice la baza de date
# Este mult mai bine pentru a face un simplu selectați și afișa datele dorite din matrice
Când lucrați cu fișiere care utilizează căi absolute. Apoi, va fi operațiune de căutare fișier suplimentar:
Clasa de lucru constantă mai bine decât să definească:
Nu utilizați funcțiile prevăzute, deoarece acestea vor fi repetate de fiecare dată:
Ca matrice de chei întotdeauna cităm siruri de caractere citate.
Utilizați funcțiile încorporate în loc să lucreze cu șiruri de expresii regulate, dacă este posibil.
Utilizați șirul cu ghilimele simple:
PHP cron-script-uri
Când PHP este utilizat pentru a dezvolta un script care va fi executat pe coroana, ar trebui să evite folosirea variabilelor globale. De exemplu:
Dolari se potrivește variabilă este trecut prin referință. Acest lucru înseamnă că, cu fiecare repetiție, va crește. Un alt exemplu comun este doar folosind o matrice comună:
Acum actualizările $ variabila va crește până la o limită maximă. Când se atinge limita de memorie, script-ul va fi oprit. Țineți evidența tuturor variabilelor este destul de greu, asa ca cel mai bine este să utilizați funcțiile. Toate variabilele create în cadrul unei funcții vor fi șterse după ce este finalizat:
Cele mai importante
- Asigurați-vă că pentru a utiliza opCache pentru PHP. Aceasta salvează o parte substanțială a resurselor.
- Utilizarea FastCGI (cel mai bun Nginx + PHP-fpm).
- Funcția în probleme CZK va ajuta la evitarea pierderi de memorie.
- Caching secțiunile lente ale codului sunt de multe ori soluția cea mai simplă și eficientă.
- Fiți conștienți de detalii importante.