Mark Dalrymple

Generational Analysis with the Allocations Instrument

Mark Dalrymple | Feb 05, 2019

How do you track down memory growth issues in XCode?

Generational Analysis with the Allocations Instrument can be used to track down memory growth issues. We're going to be tracking down a memory management issue that caught us here at Big Nerd Ranch by surprise, and we'll show you what we did to solve it.

Basic knowledge or experience building iOS applications is recommended.

For the More Curious...

Instruments User Guide: Allocations Instrument
BNR Guide to iOS
BNR Guide to Swift
iOS & Swift Courses

Subscribers Only

Transcripts are for subscribers. Create an account today to access our collection of screencasts, skill packs, and more.

Subscribers Only

Project files are only available for subscribers. Create an account today to access our collection of screencasts, skill packs, and more.

Need Help?

If you get stuck, try starting a discussion with Big Nerd Ranch experts in the community tab.

iOS Debugging

This screencast is part of a skill pack called iOS Debugging.

Finding and Fixing Memory Issues

7 minutes

Incorrectly managing memory in our applications can result in hard to find bugs and possible crashes. In this video, we will explore the Memory Graph debugging tool in Xcode and how you can use it to find and fix strong reference cycles in closures.

Optional Return Values vs. Throwing

8 minutes

This video Illustrates the differences between using optional return values or throwing errors for functions that can fail. The implementations are discussed and the pros and cons of each approach are discussed.

Introduction to Breakpoints

8 minutes

A breakpoint is a debugging tool that lets you stop your application at a specific line of code. The application is suspended, allowing you to look at your program state, and collect information about whatever bug you are tracking. In this screencast, we'll talk about simple breakpoints, conditional breakpoints, and set exception breakpoints.

Generational Analysis with the Allocations Instrument

9 minutes

Generational Analysis with the Allocations Instrument can be used to track down memory growth issues. We're going to be tracking down a memory management issue that caught us here at Big Nerd Ranch by surprise, and we'll show you what we did to solve it.

Automating Breakpoint Actions

7 minutes

While we all love Caveman Debugging, professional developers know their tools inside and out. In this screencast, debugging expert Mark Dalrymple will build on his previous screencast and show you some advanced debugging techniques in Xcode.

Swift Assertions

9 minutes

In this screencast, we’ll learn how to use Swift’s assertion function to code defensively. By the end of this video, you’ll be able to use the assertion functions to help you write stronger, more robust code.

Related Screencasts

Explore other screencasts related to this topic.

Automating Breakpoint Actions

7 minutes

While we all love Caveman Debugging, professional developers know their tools inside and out. In this screencast, debugging expert Mark Dalrymple will build on his previous screencast and show you some advanced debugging techniques in Xcode.

Swift Attributes

5 minutes

You've seen these things in your code. @IBAction. @escaping. @objc. @autoclosure. But what are they? How do they differ from other Swift language features? If you want to understand what is going on under the hood, to know the implications of your code, follow along with Mark Dalrymple in this dive into Swift Attributes.

Introduction to Breakpoints

8 minutes

A breakpoint is a debugging tool that lets you stop your application at a specific line of code. The application is suspended, allowing you to look at your program state, and collect information about whatever bug you are tracking. In this screencast, we'll talk about simple breakpoints, conditional breakpoints, and set exception breakpoints.

Touch ID and Face ID

6 minutes

Implementing Touch ID and Face ID using Apple's Local Authentication framework helps prevent unauthorized access to user's data. We will use the simulator to exercise different authentication scenarios. While the passcode on an iOS device helps prevent unauthorized access, Touch ID and Face ID let the user have a more secure complex pass code, while still making the device convenient to use.

Protocol Oriented Dependency Injection

8 minutes

Tight coupling between view controllers in your application can lead to difficult maintenance as you add and remove features. This video will explore how using Protocols can make our Dependency Injection more loosely coupled. This improves the flexibility of the code and makes our application easier to change.

Finding and Fixing Memory Issues

7 minutes

Incorrectly managing memory in our applications can result in hard to find bugs and possible crashes. In this video, we will explore the Memory Graph debugging tool in Xcode and how you can use it to find and fix strong reference cycles in closures.