Book Image

Swift High Performance

By : Kostiantyn Koval
Book Image

Swift High Performance

By: Kostiantyn Koval

Overview of this book

Swift is one of the most popular and powerful programming languages for building iOS and Mac OS applications, and continues to evolve with new features and capabilities. Swift is considered a replacement to Objective-C and has performance advantages over Objective-C and Python. Swift adopts safe programming patterns and adds modern features to make programming easier, more flexible, and more fun. Develop Swift and discover best practices that allow you to build solid applications and optimize their performance. First, a few of performance characteristics of Swift will be explained. You will implement new tools available in Swift, including Playgrounds and REPL. These will improve your code efficiency, enable you to analyse Swift code, and enhance performance. Next, the importance of building solid applications using multithreading concurrency and multi-core device architecture is covered, before moving on to best practices and techniques that you should utilize when building high performance applications, such as concurrency and lazy-loading. Finally, you will explore the underlying structure of Swift further, and learn how to disassemble and compile Swift code.
Table of Contents (15 chapters)
Swift High Performance
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Improving speed


There are a few techniques that can simply improve code performance. Let's jump directly to the first one.

Final

You can make a function and property declaration with the final attribute. Adding the final attribute makes it nonoverridable. Subclasses can't override that method or property. When you make a method nonoverridable there is no need to store it in the vtable and the call to that function can be performed directly without any function address lookup in the vtable:

class Animal {

  final var name: String  = ""
  final func feed() {
  }
}

As you have seen, the final method performs faster than nonfinal. Even so small an optimization can improve application performance. It not only improves performance but also makes the code more secure. This way you disable the method from being overridden and prevent unexpected and incorrect behavior.

Enabling the Whole Module Optimization setting achieves very similar optimization results but it's better to mark a function and property...