樂器消耗大量內存。
根據您正在錄製的內容,您可能會減少內存使用量。例如,您可以經常指定要記錄的內容(或不記錄的內容),或者降低採樣頻率(如果適用)。
100MB/s異常高。你能否更準確地描述你在那段時間錄製的內容? (你使用的儀器,你記錄的過程在做什麼等)。
Xcode 3使用的內存少得多 - 不知道這是否也適用於儀器。
通過將工具集作爲32位進程運行,可以稍微減少內存使用量。
最後,2GB物理內存對於Xcode + Instruments + iOS Sim來說並不算什麼。 fwiw,我經常耗盡8 GB或更多的物理內存。噓。幸運的是,當你想要4或8GB時,內存很便宜。
更新
我試着用儀器進行分配,泄漏和殭屍
你可以,如果你必須單獨運行這些測試。
分配
就其本身而言,如果您的應用程序也沒有創造很多分配的分配應該不消耗一噸的內存。
爲了減少內存使用這種儀器,就可以禁用某些選項,你有沒有興趣:
- 不記錄每個裁判計數操作
- 只跟蹤活動allocs
- 禁用的殭屍檢測
- 不識別C++對象
泄漏
泄漏檢測本身會消耗大量內存,因爲它會掃描內存,基本上克隆您的分配。假設你有100MB分配 - 泄漏將定期暫停進程,克隆內存並掃描它的模式。這會消耗比你的應用程序更多的內存。 iirc,它是作爲儀器的一個子進程執行的。
殭屍
殭屍檢測通常意味着參考計數記錄。在調試殭屍時,從不釋放它們是最有效的。如果你釋放他們,你可能只能檢測到暫時的殭屍(不知道是否有一個選項,在儀器......)。永遠不要釋放objc分配顯然會消耗更多的內存。在進程上運行泄漏會消耗更多的內存,因爲你的堆大小會更大 - 不應該將泄漏和殭屍結合起來。
您應該可以通過禁用這些選項中的一部分並單獨對它們進行測試來減少總體消耗。
注意
- 的前沿開發工具版本可真是搖搖欲墜。如果遇到問題,堅持正式發佈會有所幫助。
- 我可以單獨運行一個osx單元測試(主要是c/C++ apis),它在錄製時消耗約1MB/s。有些東西似乎是錯誤的,但也許這表明你的程序存在問題(很多瞬態分配?)。
- 改變數據顯示方式和/或充電/焦點設置可能需要大量內存。例如「全部恢復」可能需要幾GB來處理大量樣本。
- 如果100MB/s是一個準確的數字,我會提交一個錯誤。我知道樂器消耗大量內存,但對於錄製閒置應用程序來說,這非常高,即使期望樂器消耗大量內存。
好運
我試着用儀器進行分配,泄漏和殭屍,它似乎要消耗大約相同數量的內存不管。 一旦儀器達到約1。7GB似乎停止了,但是在那個時候,它對我的遊戲進行了適當的測試。 我對自由內存有點不清楚。我的意思是我在第一次啓動儀器時有2GB的空閒空間,這意味着xcode和模擬器應該包含在內。我有4GB的總數,它是一款相當新的iMac。 我正在運行的只是我的iPhone遊戲。我什至不需要做任何事情。只需坐在第一個菜單屏幕上即可。 – Tasik
我知道我的舊iMac沒有Xcode 3這個問題。但我不確定它的Xcode或我對我的遊戲進行了更改。 但我會嘗試一些東西+你的建議和回報。謝謝。 – Tasik
我已升級到12G的RAM。它似乎一直保持100MB的速度,一秒鐘內需要花費大約一分半的時間才能消耗10GB的存儲空間,然後再次變得非常慢。無論如何非常感謝你。如果我想出其他東西,我會補充一點。 – Tasik