Re: Ottimizzazione
Francesco Potortì <[email protected]> Mon, 20 Jul 2026 16:44:10 +0200
| Newsgroups | gmane.linux.debian.user.italian |
|---|---|
| Organization | ISTI-CNR, via Moruzzi 1, www.isti.cnr.it |
| Message-ID | <[email protected]> |
>avendo una macchina con problemi di carico CPU ma non di memoria =C3=A8 me= glio=20 >usare: > >float m[16],mn; >=E2=80=A6 >m[0]=3Dm[1];m[1]=3Dm[2];m[2]=3Dm[3];m[3]=3Dm[4];m[4]=3Dm[5];m[5]=3Dm[6];m[= 6]=3Dm[7];m[7]=3Dm[8];m[8]=3Dmn; >e poi >m[9]=3Dm[8]-m[3]+m[7]-m[2]+m[6]-m[1]+m[5]-m[0])/4+m[8]; > >oppure usare un array circolare >m[i&0xf]=3Dm[(i-5)&0xf]-m[(i-6)&0xf] ... e cos=C3=AC via con una sola riga= )i 1e=20 >la iterazione, ogni 15 secondi) Ci provo. Nel primo caso fai in pi=C3=B9 16 accessi in memoria. Nel secondo caso fai in pi=C3=B9 otto sottrazioni e otto And nei registri. Mi aspetto che una sottrazione e un And nei registri costino meno che due a= ccessi in memoria. Ma stiamo andando a cercare il pelo nell'uovo, per esse= re sicuri che sia veramente cos=C3=AC bisogna provare e misurare i tempi, c= he saranno molto vicini (immagino decine microsecondi se la memoria =C3=A8 = Ram e il contenuto non =C3=A8 in cache). Se l'operazione =C3=A8 fatta ogni= 15s pu=C3=B2 avere senso porsi il problema solo se stiamo parlando di un i= nterrupt driver in un sistema con vincoli di tempo reale molto stretti. -- fp