New AppCode 2016.3 EAP: completion and code analysis performance


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

This entry was posted in Announcement and tagged , , . Bookmark the permalink.

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

  1. Dev says:

    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:

      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:

        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:

      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:

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

  3. Bill says:

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

  4. Francis says:

    Thank you! Performance is back :)

  5. Tim says:

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

  6. deeeds says:

    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:

      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:

    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:

      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:

        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:

    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.

Leave a Reply

Your email address will not be published. Required fields are marked *