Timelane

Visually profile your asynchronous code

  • Download from GitHub Fork

    Attention: Due to an issue in Catalina, Instruments will not work when profiling in simulators.
    To work around this profile from device or a different macOS version.
    Follow @icanzilb for updates about Timelane.

What is Timelane?

Timelane is a free app that bundles a custom Xcode Instrument and the frameworks to enable your code to talk to the Timelane instrument. Once you start profiling your app with Timelane you will be able to see your asynchronous tasks plotted visually on an interactive timeline you can inspect to heart's content.

Free and extensible

The app and related frameworks are free of charge. Additionally, anyone can use the Timelane core to enable their own asynchronous code to send profiling data to the Timelane Instrument.

Time saver

Timelane is specifically designed to address profiling asynchronous concurrent code. Visualizing asynchronous operations gives you a bird's view over your subscriptions.

Open source

Drill down into the code to explore how it works. If you find a bug or have a suggestion, do say so. Made in the open by Marin Todorov.

Debugging Combine code (1:14m)

Pair debugging remotely (0:45m)

Features

Get Started

Adding Timelane

Use Swift Package Manager to add the Timelane library to use with Combine code:

    
    .package(url: "https://github.com/icanzilb/TimelaneCombine", .from("1.0.0"))
    

Profiling code

Use the lane("name") operator to send the subscription data to the Timelane Instrument:


import TimelaneCombine

yourPublisher
  .filter { ... }
  .lane("My Subscription")
  .map { ... }
  .sink {
    ... 
  }
                    

Profile the project in Instruments and record the live data:

Source code and Documentation

These are all the packages that you use in your code to talk to the Timelane Instrument. Pick your flavor:

TimelaneCombine RxTimelane TimelaneCore

Apple, the Apple logo, and Instruments are trademarks of Apple Inc., registered in the U.S. and other countries. This app is not made by, affiliated with or endorsed by Apple.