programma lento su freebsd

Luigi Rizzo rizzo a icir.org
Ven 5 Gen 2007 19:10:29 CET


On Fri, Jan 05, 2007 at 03:31:26PM +0100, davide cittaro wrote:
> On 1/5/07, Luigi Rizzo <rizzo a icir.org> wrote:
> > a questo punto dovresti cercare di connetterti al programma
> > con gdb e vedere dove e` entrato in loop.
> >
> 
> Infatti, gdb+gprof ed abbiamo scoperto che veniva chiamato un qsort
> con una funzione di compare che non trattava gli elementi uguali. La
> funzione veniva chiamata migliaia di volte e probabilmente per la
> stessa coppia restituiva 1 o -1 a seconda dell'ordine nella chiamata.
> Aggiunto il caso di eguaglianza e tutto funziona che e' una
> meraviglia. Anche su OS X e ora provo su Solaris.
> La domanda a questo punto diventa: cosa ha di diverso qsort di linux
> da quello di freebsd? Mi dicono che quest'ultimo abbia delle
> ottimizzazioni ma, in un caso come questo, queste ottimizzazioni
> portano al completo degrado delle performance (infatti diventava
> quadratico)...

se il problema era la funzione di comparazione c'e' poco che
l'algoritmo puo' fare... anzi uno si chiede che diavolo di
risultati venivano fuori su linux!

ciao
luigi


Maggiori informazioni sulla lista devel