Pedro Cabaco
Pedro Cabaco

Reputation: 185

Indexing Processing files Xcode super slow build and run

I have the following method, which, if I comment it, there is no delay when building on the simulator or on a regular iPhone. If I use this method, it delays a lot of time before it runs.

Here's the code

func createFirstRowView() {
    let b = SKSpriteNode(imageNamed: "obj_bg_card1")
    b.xScale = 0.8
    b.yScale = 0.8
    r = SKShapeNode(rectOf: CGSize(width: b.size.width*4, height: b.size.height))

    r.position = CGPoint(x: frame.midX, y: frame.midY)
    //r.strokeColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0)
    self.addChild(r)

    for i in 0..<4{
        let bg = SKSpriteNode(imageNamed: "obj_bg_card1")

        bg.xScale = 0.8
        bg.yScale = 0.8

        let lel = 0.5 + (Double(i)*1)

        bg.position = CGPoint(x: -bg.size.width*2 + bg.size.width*CGFloat(lel), y: 0)

        r.addChild(bg)

    }
    r.position = CGPoint(x: frame.midX, y: frame.midY*1.4)

    let q = SKSpriteNode(imageNamed: "obj_bg_card1")
    q.xScale = 0.8
    q.yScale = 0.8

    t = SKShapeNode(rectOf: CGSize(width: q.size.width*4, height: q.size.height))

    t.position = CGPoint(x: frame.midX, y: frame.midY)
    //t.strokeColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0)

    self.addChild(t)

    for k in 0..<4{
        let bg = SKSpriteNode(imageNamed: "obj_bg_card1")

        bg.xScale = 0.8
        bg.yScale = 0.8

        let lel = 0.5 + (Double(k)*1)

        bg.position = CGPoint(x: -bg.size.width*2 + bg.size.width*CGFloat(lel), y: 0)

        t.addChild(bg)

    }
    t.position = CGPoint(x: frame.midX, y: frame.midY*0.6)
}

I read that this is caused due to code inefficiency... Can anyone spot my mistake?

Upvotes: 1

Views: 2964

Answers (1)

Sander
Sander

Reputation: 1375

My suggestion is to separate this method to several ones and look at comilation time of each one, spotting the wrong place

For this turn on the debug-time-function-bodies option for the compiler. In your project in Xcode, go to Build Settings and set Other Swift Flags to -Xfrontend -debug-time-function-bodies.

Then jump over to the Build Report navigator with ⌘-8 where you’ll see the most recent build (and possibly some others).

enter image description here

Next, right-click on the build log for the target you built and select Expand All Transcripts to show the detailed build log.

enter image description here

Finally, you should see a series of green boxes, each representing a file or step in the compilation process. The text inside these boxes may take a moment (or a click) to load properly. If you correctly set up the build flags to show function compilation times, you should see a line of build times along the left.

enter image description here

Taken from here

Upvotes: 1

Related Questions