deriveddata
xcode會在檔案系統中集中的快取臨時資訊。
每次對xcode ios專案進行clean、build或者在ios虛擬機器上launch,xcode都會在derivedata資料夾中進行讀寫操作。換句話說,就是將derived data的讀寫從硬碟移動到記憶體中。
derivedata資料夾中包含了所有的build資訊、debug- 和 release- built targets以及專案的索引。當遇到零散索引(odd index)問題(**塊補全工作不正常、經常性的重建索引、或者執行專案緩慢)時,它可以有效地刪除衍生資料。刪除這個資料夾將會導致所有xcode上的專案資訊遭到破壞。
step 1
將derivedata下的檔案刪除:
rm -rf ~/library/developer/xcode/deriveddata/*刪除的這些資料,xcode會在build時重新寫入的。
step 2
在~/library/developer/xcode/deriveddata.上部署安裝2 gb大小的ram磁碟。
進到~/library/developer/xcode/deriveddata.
cd ~/library/developer/xcode/deriveddata
建立2 gb的ram磁碟(size的計算公式size = 需要分配的空間(m) * 1024 * 1024 / 512
):
hdid -nomount ram://4194304此行命令後將會輸出ram磁碟的驅動名字:/dev/diskn(n為數字)。
初始化磁碟:
newfs_hfs -v deriveddata /dev/rdiskninitialized /dev/rdisk3 as a 2 gb case-insensitive hfs plus volume
安裝磁碟:
diskutil mount -mountpoint ~/library/developer/xcode/deriveddata /dev/diskn這會在已存在的derivedata上安裝乙個卷,用於隱藏舊的檔案。這些檔案仍會佔據空間,但在移除ram磁碟之前都無法訪問。
在重啟或從finder中彈出ram磁碟時,磁碟中的內容將會消失。下次再建立磁碟時,xcode將會重新構建它的索引和你的專案中間檔案。
建立虛擬磁碟後, 並不是直接占用掉所有分配的空間, 而是根據虛擬磁碟中的檔案總大小來逐漸占用記憶體.
注:如果建立的虛擬磁碟已滿, 會導致編譯的失敗. 此時清除掉derived data後重新編譯, 就算有足夠的空間也還是有可能會導致編譯失敗. 重啟xcode可以解決此問題.
對手頭demo進行編譯測試,由於編譯本身讀寫內容較少,耗時較短,都在10s到20s之內,所以提速感覺不明顯,在1s到2s間,也許應用到較大的專案中會有比較好的體現。
參考: reduce xcode build times
【ios tip】提高xcode編譯速度
提公升Xcode編譯效能,RAM磁碟編譯
deriveddata xcode會在檔案系統中集中的快取臨時資訊。每次對xcode ios專案進行clean build或者在ios虛擬機器上launch,xcode都會在derivedata資料夾中進行讀寫操作。換句話說,就是將derived data的讀寫從硬碟移動到記憶體中。deriveda...
提公升磁碟IO效能的幾個技巧
目前磁碟都是機械方式運作的,主要體現在磁碟讀寫前尋找磁軌的過程。磁碟自帶的讀寫快取大小,對於磁碟讀寫速度至關重要。讀寫速度快的磁碟,通常都帶有較大的讀寫快取。磁碟的尋道過程是機械方式,決定了其隨機讀寫速度將明顯低於順序讀寫。在我們做系統設計和實現時,需要考慮到磁碟的這一特性。fastdfs是乙個開源...
提公升磁碟IO效能的幾個技巧
目前磁碟都是機械方式運作的,主要體現在磁碟讀寫前尋找磁軌的過程。磁碟自帶的讀寫快取大小,對於磁碟讀寫速度至關重要。讀寫速度快的磁碟,通常都帶有較大的讀寫快取。磁碟的尋道過程是機械方式,決定了其隨機讀寫速度將明顯低於順序讀寫。在我們做系統設計和實現時,需要考慮到磁碟的這一特性。fastdfs是乙個開源...