Google+

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Tutorial Performanţa în programare
#1
În cadrul acestui subiect vom discuta despre performanţa în programare?! Şi pentru că trebuie să ne stabilim un scop vom încerca să răspundem la întrebările : "Ce importanţă are performanţa în acest domeniu?" cât şi la întrebarea "Cum se poate stabili nivelul de performanţă al unui script/ program" ...

1.Prezentare generală
Aţi folosit vreodată un plugin care listează o serie de obiecte dintr-o bază de date fără a folosi paginare sau alte elemenete de acest gen?!
De exemplu, imaginaţi-vă (dacă nu aţi întâlnit dejaBig Grin) un plugin care listează toate subiectele din cadrul unui forum (fără paginare). La început - 10, 20 de subiecte nu se poate vedea nimic, dar mai târziu - dacă avem 2000 de subiecte ce facem, le afişăm pe toate?
Asta înseamnă că, dacă aveţi 2000 de intrări într-un tabel din baza de date şi pluginul afişează toate aceste câmpuri atunci din punct de vedere al resurselor totul ar fi un dezastru. Acum imaginaţi-vă apoi cele 2000 devenind 100000 ...
Bine problema se poate reduce şi la o altă idee. E ca şi cum am face o parcurgere şi dorim să aflăm, căutăm o informaţie din baza de date.

2.Soluţii
Totuşi există situaţii când nu putem evita aceste conflicte şi probleme legate de viteză şi atunci trebuie să găsim alte metode care să ducă la optimizarea site-ului nostru.

Una dintre aceste metode o voi prezenta chiar eu. Este vorba despre compresia GZip. Compresia este o metodă simplă şi eficientă în acelaşi timp pentru mărirea vitezei de încărcare a site-ului cât şi de salvare de trafic.
Astfel în momentul în care accesezi o pagină web, browserul va trimite o cerere către serverul respectiv care va fi procesată de acesta şi el va trimite un răspuns. De cele mai multe ori acest răspuns este favorabil şi atunci serveul va încărca o pagina, un fişier, php, html etc. iar conţinutul va fi procesat şi afişat utilizatorului. În lumea calculatoarelor totul se reduce la fişiere.
Mai departe trebuie foarte bine înţeles modul în care comunică o aplicaţie server - client pentru a putea înţelege de ce compresia este o alternativă viabilă. Voi încerca în cele ce urmează să exemplific acest lucru.
[Image: HTTP_request.png]
Ce se întâmplă?
1.Clientul trimite serverul o cerere precum doreşte pagina index.html;
2.Mai departe serverul decide dacă clientul poate primi acea pagina, dacă da trimite un semnal de 200 OK acestuia.
3.Odată cu trimiterea semnalului 200 OK este trimis şi fişierul index.html care va fi afişat în browser.
4.Browserul procesează informaţia şi afişează rezultatul.
Astfel se poate vedea că la o simplă astfel de interogare s-a consumat 110 KB din banda de trafic. (bine am presupus că index.html are 100 de KB. Ne propunem să micşorăm, comprimăm mărimea datelor trimise.
[Image: HTTP_request_compressed.png]
Astfel se poate observa că de la 100 de KB comprimarea ajunge la 10 KB. La prima vedere acest lucru ar fi cam acelaşi lucru pentru că teoretic chiar dacă am comprimat fişierul trebuie să browserul să-l dezarhiveze odată ce a ajuns pe staţia client. Şi acest lucru necesită timp. Totuşi s-a constatat că timpul necesar decoprimării este mai mic decât cel necesar transmiterii celor 90 de KB. Un alt avantaj pe care îl are comprimarea este faptul că salvează din timpul de load al serverului. Astfel timpul de răspuns al serverului este mai mare deoarece el trimite doar 10 KB nu este nevoit să trimită 100 de KB. Astfel un client este "rezolvat" mai repede şi se poate prelua mult mai repede un alt client.
Acesta este un sait de unde puteţi testa compresia unor fişiere.

Acum vă întreb şi pe voi, cam ce soluţii aţi mai găsi? (aş dori să fie cât mai generale cu putinţă)
Users : collective term for those who use computers. Users are divided into three types : novice, intermediate and expert.
Novice users : people who are afraid that simply pressing a key might break their computer.
Intermediate users : people who don`t know how to fix their computer after they`ve just pressed a key that broke it.
Expert users : people who break other people`s computers.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)