Domanda

Sto facendo una certa analisi di un'applicazione multi-thread con gli strumenti Apple Struments, che danno molte informazioni che sto cercando di dare un senso a.Sto cercando di trovare una buona risorsa per descrivere gli stati del filo che sono codificati a colori nello strumento.Ho esaminato la documentazione e i libri del kernel XNU ma senza molta fortuna.

C'è un sacco di giallo e viola che corrispondono alle modalità "preventive" e "supervisore" (il grafico a colori è descritto nel pop-up in alto a destra nell'immagine allegata).Dato che sto spendendo così tanto tempo in questi stati contrari allo stato "in esecuzione" (in blu), sarei particolarmente interessato a sapere cosa si riferiscono e se sia possibile / desiderabile minimizzare il tempo trascorso in questi stati.

Inserisci Descrizione dell'immagine qui

È stato utile?

Soluzione

preventivato= il tuo filo è stato improprio, ed era pronto, disposto e in grado di eseguire, ma è stato cacciato (il contesto commutato) a favore di qualche altro thread. Ciò significa che il tuo thread non stava dormendo su I / O o un evento, e in realtà stava facendo qualcosa in modo intensivo della CPU. A causa della scadenza quantistica o di un altro filo di maggiore priorità, tuttavia, è stato forzato dalla CPU.

Supervisor= Il tuo filo era in modalità kernel. Di solito, questo significa che il kernel stava servendo una chiamata di sistema effettuata dal tuo filo.

nessuno di loro è rigorosamente cattivo, ma:

Evitare la prelazione: non è possibile fare qui, oltre a giocare con la tua priorità - Aumenta la tua priorità usando un bel valore negativo o, direttamente, utilizzando l'API di SetPriority. È inoltre possibile utilizzare le politiche di pianificazione per aumentare la preferenza del thread e cajole the Mach Scheduler (il decisore di discussione sottostante) per inserire i tuoi thread prima, e dare loro più tempo della CPU.

Evitare la modalità Supervisore: potresti essere pesante sulle chiamate di sistema. Di nuovo, questa non è necessariamente una brutta cosa.

Spero che questo aiuti,

TG

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top