Czlug: Tempi di esecuzione

Pier pier.damato@gmail.com
Ven 28 Lug 2006 14:37:25 CEST


Ciao a tutti.

Vi propongo un piccolo quesito tecnico.

Sto facendo un'analisi dei diversi algoritmi che operano su immagini,
l'obiettivo  quello di determinare i migliori. Al termine quelli scelti
verranno inclusi all'interno di una piattaforma che opera in ambiente
real-time. Visto l'ambito di utilizzo  necessario effettuare una stima
abbastanza precisa dei tempi, ed  proprio qui che ho dei problemi.

Lo stralcio di codice  il seguente



  imageOut=(unsigned char *)calloc(rows*cols,sizeof(unsigned char));

  cmnGetTimestamp(&timeStart);
  averageFilter3x3(imageIn,rows,cols,&imageOut,&time);
  cmnGetTimestamp(&timeStop);
  printf("\n\n\n\nTime: %lld\n",timeStop-timeStart);

  cmnGetTimestamp(&timeStart);
  averageFilter3x3(imageIn,rows,cols,&imageOut,&time);
  cmnGetTimestamp(&timeStop);
  printf("\n\n\n\nTime: %lld\n",timeStop-timeStart);

  cmnGetTimestamp(&timeStart);
  averageFilter3x3(imageIn,rows,cols,&imageOut,&time);
  cmnGetTimestamp(&timeStop);
  printf("\n\n\n\nTime: %lld\n",timeStop-timeStart);




Ecco la domanda. La prima esecuzione della funzione averageFilter
impiega circa il doppio del tempo (120 ms) delle due successive (66 - 67
ms)

Perch?

L'unica risposta che mi sono dato  che la prima volta i dati sono
prelevati dalla memoria, mentre per le altre due esecuzioni si trovano
in cache. Vi sembra plausibile oppure avete altre spiegazioni? Questo
significherebbe che con i dati in cache i tempi sono solo dimezati,
mentre io mi aspetterei che fossero ben pi bassi, tipo qualche ordine
di grandezza o no?

Se tutto questo  vero come posso fare per ottenere una stima dei tempi?

Considerando l'ambito real-time non posso ipotizzare tempi pari a 65 -
70 ms, perch tutte le volte che ne impiega 120 mi va il crash il
sistema, ma non posso neppure ipotizzare tempi pari a 120 - 125 ms
quando nel 80% - 90% dei casi impiega la met.

Se avete qualche idea o suggerimento vi ringrazio.

Ciao Pier


Maggiori informazioni sulla lista Czlug