10.6 Limitazioni

Questo profiler ha fondamentalmente due limitazioni. La prima � che esso conta sull'interprete Python per poter sbrigare eventi call, return ed exception. Il codice C non viene interpretato e quindi � ``invisibile'' al profiler. Tutto il tempo speso nel codice C (comprese le funzioni built-in dell'interprete), verr� considerato relativo alla funzione Python che ha invocato quel codice. Se poi il codice C chiama a sua volta altro codice Python, allora queste chiamate verranno profilate correttamente.

La seconda limitazione riguarda l'accuratezza dell'informazione sul tempo. Esiste un problema fondamentale dei profiler deterministici riguardo la loro accuratezza. La restrizione pi� ovvia riguarda ``l'orologio'' sottostante, che tipicamente ha una precisione di 0.001 secondi. Quindi non ci possono essere misure pi� accurate di 0.001 secondi. Se vengono prese sufficienti misurazioni ``l'errore'' tende a livellarsi. Sfortunatamente per�, rimuovere questo primo errore ne induce un secondo.

Il secondo problema � dovuto all'attesa tra ``l'istante'' in cui avviene un evento e ``l'istante'' in cui la chiamata del profiler per ottenere il tempo di esecuzione acquisisce realmente lo stato del clock. Analogamente, esiste un certo intervallo di tempo tra l'uscita del gestore dell'evento del profiler ed il momento in cui il valore del clock � stato ottenuto (che � gi� trascorso), fino al momento in cui torna in esecuzione il codice utente. Alla fine le funzioni che vengono chiamate molte volte, o che chiamano molte funzioni, tendono in genere ad accumulare questo errore. L'errore generato in questa maniera di solito � minore della precisione del clock (inferiore al suo intervallo), ma pu� accumularsi e diventare molto significativo. Questo profiler offre un modo per calibrarsi in base ad una data piattaforma, cosicch� questo errore possa probabilmente venire rimosso. Dopo la calibrazione del profiler, esso sar� molto pi� accurato(in un senso lato), ma a volte potr� produrre dei numeri negativi (quando il numero delle chiamate � eccezionalmente basso, ed i vantaggi della probabilit� lavorano contro di voi :-) ). Non ci si deve preoccupare di questi numeri negativi, dovrebbero apparire solo se si � calibrato il profiler, e questi risultati sono sicuramente migliori che senza calibrazione.

Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.