New AppCode 2016.3 EAP: completion and code analysis performance

Stanislav Dombrovsky


This week brings a very important AppCode 2016.3 EAP build, as it contains significant performance improvements in areas essential for writing the Swift code.

Completion performance

We made performance optimizations for Swift completion in pure Swift and mixed Objective-C/Swift projects and re-worked some parts of our completion caching system. It means that completion in Swift projects should become much faster comparing to any previous 2016.3 EAP build.

SourceKit warnings and errors

We fixed an important issue in SourceKit integration which caused significant delays when showing warnings and errors in editor. Now this functionality should work much faster in general (note that there is an issue with some projects when SourceKit warnings and errors are not shown and we are still working on it).

In addition, we added support for precedencegroup keyword including highlighting, completion and formatting and fixed issue with NSLog output on macOS 10.12.1.

As performance improvements mentioned above are quite massive, we encourage you to try this build with your project and share your feedback with us either in comments below or in our tracker.

For the full list of fixes please see the release notes.

Download AppCode 2016.3 EAP

Your AppCode team
The Drive to Develop

Comments below can no longer be edited.

14 Responses to New AppCode 2016.3 EAP: completion and code analysis performance

  1. Dev says:

    November 17, 2016

    Completion definitely is a lot faster. SourceKit annotations still not working, though. They did work for me (slowly) with the previous build, eventually – but now they’re back to not working again.

    • Dev says:

      November 17, 2016

      One error I’m seeing the SourceKit logging:

      sourcekit: [2:sourcekitd_send_request_sync-after:74271:43.1515] error response (Request Failed): Could not load module: ModuleName

      • Dev says:

        November 17, 2016

        And now it’s working again, sort of. I can see in the logs that sometimes it can take several seconds for the response to AppCode’s SourceKit request to be returned by SourceKit. I can also see situations where the response is returned with errors, but AppCode is not showing the errors. So, unfortunately there still seems to be a whole lot of issues with this.

        I’m not sure what impact, if any, my turning on SourceKit logging has on the above behaviour.

    • Stanislav Dombrovsky says:

      November 17, 2016

      Looks like we need logs for your project to understand what happens. Could you please perform these steps and submit logs mentioned in the comment in this ticket?

  2. Sergey says:

    November 17, 2016

    Thanks a lot. you are really making this app better and better!!!

  3. Bill says:

    November 17, 2016

    Hey, this is great! In-line SourceKit warnings are very helpful.

  4. Francis says:

    November 18, 2016

    Thank you! Performance is back 🙂

  5. Tim says:

    November 18, 2016

    Really appreciate your efforts. Between this and the previous update, feels a lot less sluggish.

  6. deeeds says:

    November 18, 2016

    Scrolling Performance:

    Can anything be done about this?

    The startup of scrolling a large code file is slow, during the middle it’s not bad (not 60fps, even on a powerful machine) and slowdown is horrible.

    Slowdown seems to be hampered by a design decision to step the slowing rather than smoothly slow the scrolling. So there’s a terrible stutter as the scrolling slows down, that seems deliberate.

    For examples of good scrolling, open any large and long Apple documentation page in Safari or Dash, where they both scroll wonderfully. Don’t look at Xcode, it’s not great at scrolling.

    • Stanislav Dombrovsky says:

      November 18, 2016

      Could you please:

      1. Download this JDK version and unzip it somewhere
      2. Press Shift + Cmd + A
      3. Type “Switch IDE boot JDK” -> press Enter
      4. Select the directory where the downloaded JDK was unzipped, press “OK”, restart the IDE

      After it please tell us if the scrolling performance is better.

  7. Thomas CASSANY says:

    November 22, 2016

    Now the project opens super fast but when I open a file I’ve got an infinite loading. Basically I can’t use it :(.

    • Thomas CASSANY says:

      November 22, 2016

      Sorry, it takes a long long time (more than one 1min). It seems only affecting the first file. I guess there is something running on background. Should be nice to have a loading bar instead of only one spinner.

      • Stanislav Dombrovsky says:

        November 22, 2016

        Hi Thomas, any chance you can share this file for investigation privately, so I could pass it to the team and we could analyze what happens?

  8. George Cook says:

    November 30, 2016

    Performance is really fast now – almost as fast as xcode (i.e. can use it while actually typing). I noticed it faster for overrides, and some more quick-fixes too. Very good release.

    saying that though, it seems some things miss completion altogether.. in the following code

    “` let a = QuartzCore.CALayer()
    a.opacity = 0
    sourceTeamView.backgroundHeader.layer.opacity = 0

    `sourceTeamView.backgroundHeader.layer` is a CALayer

    code completion works for a.opacity; but there is no completion for anything on `sourceTeamView.backgroundHeader.layer.`, tellingly it can’t navigate into the `.layer` property – so it’s dropping the ball there somewhere.


Subscribe to product updates