Recentemente ho profilato la mia app utilizzando lo strumento tracker Xcode VM. Ho scoperto che l'app ha molta memoria sporca, specialmente i dati dello strumento delle prestazioni. Quindi voglio sapere quali sono le ragioni dell'enorme memoria sporca e dei dati dello strumento di performance. Qualsiasi aiuto sarebbe apprezzato.Quali potrebbero essere i motivi per cui i dati dello strumento Performance sono elevati. [che mostra in Xcode VM tracker]
risposta
La vostra applicazione richiede 51MB per memorizzare, quando viene sospesa. Lo stesso strumento di performance aggiunge un sovraccarico di 30 MB. Che lascia 20 MB per la tua app.
Dagli elementi elencati, sembra che l'app sia pesante. In effetti, sembra molto simile a this post. Il che mi fa chiedere se questi oggetti sono ancora in elaborazione o in attesa di essere rilasciati, quando l'app è sospesa.
In alternativa, mi chiedo se è possibile liberare molte di quelle animazioni e immagini quando si accede allo sfondo e ricostruirle quando si entra in primo piano.
Infine, si noti che Apple recommends rimozione di forti riferimenti a immagini, dati da disco e supporti per ridurre la memoria sporca.
Dal momento che ho appena avuto lo stesso problema, ecco quello che ho trovato: Le voci "Dati dello strumento Performance" provenivano da libBacktraceRecording.dylib.
È possibile disabilitare la registrazione backtrace nell'editor di schemi.
Vedere la domanda correlata Memory leak with “libBacktraceRecording.dylib” in React Native ios application.
- 1. VM Tracker mostra grandi dimensioni sporche
- 2. Motivi per cui Redis rallenta
- 3. Strumento che mi mostra quali file sono scritti in Linux?
- 4. Quali sono alcuni motivi per cui jquery .focus() non funziona?
- 5. Quali sono i motivi per cui un sito web "semplice" non sceglie Cloud Based Hosting?
- 6. Quali sono i motivi per lanciare un puntatore void?
- 7. Quali sono i plugin Xcode più utili?
- 8. Quali sono i motivi di questo risultato di riferimento?
- 9. Perché VM Tracker è vuoto?
- 10. Quali sono i motivi per utilizzare l'attributo id per scopi CSS?
- 11. Quali sono i motivi per cui l'utilizzo della CPU non va al 100% con C# e APM?
- 12. Quali sono i possibili motivi per la corruzione di file binari su dispositivi Android
- 13. Ci sono motivi per cui il database h2 non dovrebbe essere usato in produzione?
- 14. Quali sono i buoni motivi per scegliere l'invarianza in un'API come Stream.reduce()?
- 15. Quali sono le alternative alla VM Java?
- 16. Come interpretare i risultati di Allocations e VM Tracker in Instruments?
- 17. codice errore (-11): quali sono tutti i possibili motivi per ottenere l'errore "cl_build_program_failure" in OpenCL?
- 18. Uno strumento per dirti quali sono i file sorgente necessari in un progetto C++?
- 19. Quali sono i rischi nell'archiviazione dei dati in sessione?
- 20. Quali sono i motivi positivi per utilizzare il provider di appartenenza predefinito o uno personalizzato che lo eredita?
- 21. Che cosa sono i "dati urgenti"?
- 22. Che cosa sono i 'dati' in window.history.replaceState
- 23. Quali sono i motivi originali di ToString() in Java e .NET?
- 24. Quali sono i caratteri che stringByAddingPercentEscapesUsingEncoding escapes?
- 25. Quali sono i motivi per utilizzare "syscall" invece di chiamare direttamente la funzione?
- 26. I casi in cui float == e! = Non sono opposti diretti
- 27. Cosa sono i binari incorporati in Xcode?
- 28. Algoritmo: crea un consiglio per i film che potrebbero piacerti
- 29. Quali sono le librerie che collegano le opzioni in Xcode?
- 30. Quali sono i vantaggi delle coroutine?
Forse le convenzioni di codifica corrette non vengono seguite. È possibile risolvere questi problemi di memoria rivedendoli. –
Potresti guidarmi qualsiasi doc che riferisca quelle cose. – sateesh