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

Performance measuring in unit tests


When you create a new project, Xcode creates a unit test target for that project with the name ProjectName + Tests. If you are not familiar with unit testing, you can read about testing in Xcode at https://developer.apple.com/library/ios/documentation/DeveloperTools/Conceptual/testing_with_xcode.

Xcode will also create a simple unit test file for you. In our project, it's Swift_ToolkitTests.swift. The unit test has three main methods, with different purposes:

  • setup

  • teardown

  • test

    Note

    The unit test function must begin with the test prefix, like this for example:

    func testCreatingPerson
    func testChangingName
    

The names of these functions reflect their purposes. The setup function performs additional setup before the unit test is run, and teardown performs a cleanup, but the most interesting function for us is test, which performs testing.

The XCTestCase unit test class has a measureBlock function that works in a way similar to the measure function that we...