How to decrease build times / speed up compile time in Xcode?

后端 未结 14 1559
悲&欢浪女
悲&欢浪女 2020-12-04 06:40

What strategies can be used in general to decrease build times for any Xcode project? I\'m mostly interested in Xcode specific strategies.

I\'m doi

14条回答
  •  独厮守ぢ
    2020-12-04 07:13

    I used a script to make use of a RAM drive, together with some "forward declarations" optimizations my project clean build time went from 53 seconds to 20 seconds.

    I was tempted to get the Gui on the AppStore, but opted rather to go for command line. I put the script as part of git repository.

    To see the build times, enter this in a terminal: "defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES"

    Restart Xcode to notice the build times in the toolbar. (this is my non clean build time using objective-c)

    Adjust the script to your liking. - Note the script clears the derived data folder.

    #!/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)
    

    To see the effect and to control the RAM Drive:

    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: I essentially use the hdiutil provided by macOs. I tried switching the -kernel option (no swapping to disk) on but failed on my machine, saying it is not implemented.

    Maybe the new OS coming soon we will see even more improvements as the new file system copy feature is really fast, and possibly makes this script redundant.

提交回复
热议问题