Afişează mesaje
Pagini: [1]
1  infoarena - concursuri, probleme, evaluator, articole / Articole / Răspuns: 12 ponturi pentru programatorii C/C++ : Noiembrie 30, 2009, 15:00:04
In cazul pontului #3, imbunatatirea vine din cauza prefetch-ului pe care il facea procesorul(mai putin probabil)(prefetch-ul de date e mai putin uzual, ci cel de cod) sau din cauza modului de acces linear la memorie in a 2-a varianta care presupunea un calcul mai simplu al adresei urmatorului element(incrementarea adresei dintr-un registru de adrese al procesorului, in loc de un calcul mai complicat repornind de la adresa de baza a tabloului cum era in cazul in care se facea parcurgerea pe coloane si nu pe linii); daca compilatorul e suficient de destept si cand se trece de la la t[ i ][ j ] la t[ i+1 ][ j ],, modificarea registrului de adrese poate presupune doar adaugarea unui offset; dar offsetul nu 1, deci trebuie pastrat intr-un registru, deci depinde si de capabilitatile CPU-ului, nr-ul de registrii disponibili etc.
Pagini: [1]
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines