2014-07-24 12 views
9

A volte quando carico una vista tabella e non eseguo intenzionalmente alcuna attività se non lasciando che la visualizzazione della tabella mostri, aspetterò alcuni secondi e poi l'utilizzo della CPU aumenterà. Come posso trovare la causa?Profilo CPU iOS: perché questa thread potrebbe risucchiare il 99,9% della CPU?

enter image description here

+0

Direi che è in un ciclo "infinito". In questo caso, probabilmente perché lo storage è stato ingombrato, anche se probabilmente perché hai in qualche modo descritto una struttura di dati circolare che viene ora navigata. –

+0

Penso che avremo bisogno di ulteriori dettagli (versione iOS e così via). Ed è probabilmente un loop infinito come ha detto @HotLicks. – Idris

+0

Invertire la struttura delle chiamate e provare a trovare il metodo/la funzione incriminata. Sembra un problema di UIKit/disegno. – duci9y

risposta

15

Perché potrebbe essere questa discussione succhiare il 99,9% della CPU?

Non so. Ma ecco alcuni pensieri:

  1. La biblioteca responsabile è UIKit. Quindi sembra che qualche codice di interfaccia utente sia rotto.
  2. Una funzione denominata è in funzione da molto tempo.
  3. pthread_once e pthread_getspecific richiedono molto tempo. Queste funzioni sono veloci, quindi è necessario eseguire molto spesso.
  4. Fanno parte di GetContextStack e PopContext

Sembra che nel codice v'è una sorta di pila "contesto" di essere spinto, ma non spuntato. Cercherò occorrenze di UIGraphicsPushContext o UIGraphicsBeginImageContext senza le loro controparti di chiusura.

Ma potrei essere completamente fuori e quelle funzioni non fanno parte del codice di contesto grafico.

+1

Ad esempio, potrebbe essere che il contesto A sia figlio del contesto B che è figlio del contesto A .... –

+0

Esattamente! Mi mancavano 'UIGraphicsEndImageContext()' e 'CGImageRelease (imageRef)'. –

+0

Stavo vedendo la stessa cosa. Aveva lo stesso problema. Grazie intelligente uomo di internet! – voidref

1

E 'possibile che non stai terminare la UIGraphicsBeginImageContext

ho risolto lo stesso con l'aggiunta di UIGraphicsEndImageContext dopo l'uso.

+0

(Rudi, ti sei mostrato nella coda di bassa qualità perché la tua risposta sembrava "Ho lo stesso problema", quindi ho modificato un po 'il fraseggio - spero che sia ok con te) –

Problemi correlati