Titlul: Niste intrebari de optimizare Scris de: Timotei Dolean din Martie 11, 2008, 19:07:55 Deci am niste intrebari legate de optimizarea unor operatii in C++
Ce este mai rapid dintre: 1) o matrice cu 2 linii si m coloane Cod: #define M 100 SAU un vector de structuri Cod: #define M 100 2) folosirea unei variabile intr-o functie: folosind variabila global SAU transmitand-o ca parametru Titlul: Răspuns: Niste intrebari de optimizare Scris de: Kerekes Felix din Martie 11, 2008, 20:28:42 1) Teoretic, matricea, mai ales in cazurile in care este adaptata sa nu sparga linia de cache
2) Transmiterea ca parametru e mai rapida pentru ca variabila e stocata pe stiva, la care accesul este mai rapid In fine, astea sunt detalii care conteaza prea putin, si in cea mai mare majoritate a cazurilor, nu iti vor aduce puncte in plus. Corectati-ma daca am gresit Titlul: Răspuns: Niste intrebari de optimizare Scris de: Gogu Marian din Martie 11, 2008, 21:41:07 Daca nu vrei sa spagi cache-ul ar trebui sa fie mai eficienta varianta de struct in medie pentru ca atunci cand ai nevoie de x, probabil ai nevoie si de y si nu ai decat o citire din RAM daca nu sunt in cache.
Oricum, la 100 de elemente chiar nu ar trebui sa conteze ca intra oricum totul in cache. La transmiterea parametrilor pentru intregi/reale nu ar trebui sa conteze, oricum optimizeaza bine compilatorul. Pentru structuri mari de date ai grija ca poate dura ceva sa le incarce in stiva asa ca foloseste transmiterea prin referinta unde e sigur. Titlul: Răspuns: Niste intrebari de optimizare Scris de: Kerekes Felix din Martie 11, 2008, 22:30:47 Daca nu vrei sa spagi cache-ul ar trebui sa fie mai eficienta varianta de struct in medie pentru ca atunci cand ai nevoie de x, probabil ai nevoie si de y si nu ai decat o citire din RAM daca nu sunt in cache. In cazul asta poti declara matricea asa: Cod: #define M 100 |