簡體   English   中英

為什么XCode和樂器的內存使用量之間存在巨大差異,這還可以嗎?

[英]Why the huge difference between XCode & instruments memory usage, and is it ok?

我將XCode 7.0與iOS 9.0 SDK和ARC一起使用,所有性能分析/測試都在具有iOS 9的iPhone 5S上完成。 編輯 :對於所有屏幕截圖,這都是一次運行:我直接從xcode運行調試版本,然后手動運行附加儀器。 因此屏幕截圖全部來自完全相同的單個測試運行。 這種內存增長(每個xcode視圖)是100%可再現的。

我的應用程序下載ZIP文件,將其解壓縮,然后將其添加到相機膠卷中。 我已經確保要分析並捕獲內存泄漏(即缺少CGContextRelease)以及使用@autoreleasepool

在解壓縮過程中,在xcode中,我看到內存使用量迅速增加,直到解壓縮完成后才永無休止,而且我無法解釋這一點,因為在Instruments中沒有可以保留的對象。 內存永遠不會釋放(根據xcode的內存視圖)。 在測試運行結束時,我看到使用了236MB,在解壓縮過程中沒有內存警告。 如果使用Instruments的分配工具,則會看到使用了50.2MB的堆和匿名VM。 那是巨大的差異!

我做的第一件事是假設[UIImage imageNamed:是罪魁禍首(緩存等),因為我有很多動畫UIImageViews,所以我花了一些時間從代碼中刪除所有imageNamed,而是使用imageWithContentsOfFile 那根本沒有幫助。 我將解壓縮后的圖像添加到具有以下iOS 8 Photo框架的相機膠卷中: [PHAssetChangeRequest creationRequestForAssetFromImageAtFileURL:[NSURL fileURLWithPath:filePath]]

我花了很多時間瀏覽樂器和網絡文章,但無濟於事。 誰能回答這些問題?

  1. 為什么Xcode內存使用與儀器之間存在差異-這是正常現象嗎?
  2. 我認為這些數字對於發布這樣的應用程序來說太高了,在上傳到應用程序商店之前,我必須改進它,對嗎?
  3. 查看下面的屏幕截圖,您可以對我可以開始尋找問題的地方提出任何建議嗎?

預先非常感謝您的幫助。 當然,我會發布任何有幫助的源代碼,但我不確定從哪里開始...

XCODE內存使用量236 MB Xcode內存用法

儀器 儀器vm摘要

儀器配置摘要

最常見的原因是您的配置。 默認情況下,當您在Xcode中運行時,您將在Debug模式下進行構建。 當您在樂器中進行配置文件時,默認情況下,它將構建發行版。 您可以在方案中修改運行和配置文件配置以更改此設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM