私のプロジェクトは、の構築時間が53秒から20秒に短縮された、いくつかの「前方宣言」最適化とともに、RAMドライブを使用するスクリプトを使用しました。
私はAppStoreでGUIを手に入れようと誘惑されましたが、むしろ というコマンドラインを選択しました。私はスクリプトをgitリポジトリの一部として入れました。
は、ビルド時間を表示するには、ターミナルで次のように入力します。
ツールバーのビルド時間を気づくこと
再起動のXcode「のデフォルトはcom.apple.dt.Xcode ShowBuildOperationDuration YESを書きます」。 (これは私の非クリーンなビルド時間を使用して目標 - c)
スクリプトを好みに合わせて調整します。 - スクリプトは、派生データフォルダ をクリアします。私は基本的にMacOSのが提供するhdiutilを使用 :
#!/bin/sh
#2 GIG RAM
GIGA_BYTES=$((2*1024*1024*1024))
# a sector is 512 bytes
NUMSECTORS=$((${GIGA_BYTES}/512))
#ram disk
mydev=`hdiutil attach -nomount ram://$NUMSECTORS`
newfs_hfs $mydev
# make mount point
MOUNT_POINT=/Users/your_user_name/Library/Developer/Xcode/DerivedData
# *******************************************
# ** WARNING - MOUNT POINT WILL BE DELETED **
# *******************************************
rm -rf ${MOUNT_POINT}
mkdir -p ${MOUNT_POINT}
# mount
mount -t hfs $mydev ${MOUNT_POINT}
echo unmount $(MOUNT_POINT)
効果を確認し、RAMドライブを制御するために:
mount - see mount points
umount mount_point - unmount point
diskutil list - see disks
diskutil eject /dev/diskX - eject the disk
df -ahl - see free space
NOTE。 -kernelオプション(ディスクへのスワップなし)をオンにしてみましたが、マシン上で失敗しました。
新しいOSが登場すると、すぐに新しいファイルシステムのコピー機能が非常に高速になり、このスクリプトが冗長化される可能性があります。
これを提案いただきありがとうございます。私はちょうどいくつかの検索を行い、それはうまくいくはずだと思うし、Xcode(少なくとも3.2)に統合されている。それが私のプロジェクトで現在使われているかどうかは、古いXCodeプロジェクトファイルが古い "純粋なgcc"アプローチにデフォルトしているかもしれないと思うので、私がチェックインするものです。ありがとう! –
私はLLVMをiPhone用にコンパイルすることはありません。それは本当にサポートされていますか? – MrMage
iPhoneではサポートされていませんが、シミュレータビルドでうまく動作します。SDK –