A common problem that we often face with Objective-C applications is memory leaks and the overall memory usage of our application. This is a significant problem when building applications that we end up deploying to the cloud either as a serverless function, container, or virtual machine. In such cases, memory usage can become a significant problem by slowing down our application, causing it to crash entirely, or increasing costs.
Therefore, monitoring our Objective-C application's memory usage and setting up a system to track when use goes above a certain threshold is essential. This way, we can always be aware of the performance of our application. In cases of a performance issue, for example, when the memory usage goes above a certain threshold, say 80 percent, we can take immediate action and fix the problem before it becomes a significant issue.
To do so, we have created LogSnag, a powerful event tracking tool that works seamlessly with Objective-C and allows us to track any event in our application in real-time. For example, with LogSnag, we can track our memory usage in real-time and set up a rule to notify our team and us when the memory usage goes above a certain threshold via push notifications. This way, we will always be aware of the performance of our application, and we can take immediate action if needed.
Setting up LogSnag
- Sign up for a free LogSnag account.
- Create your first project from the dashboard.
- Head to settings and copy your API token.
Objective-C code snippets
You can use the following code snippets to track memory usage in your Objective-C application.
Please don't forget to replace the YOUR_API_TOKEN
with your API token and update the project and channel names.
Using Objective-C with NSURLSession
#import <Foundation/Foundation.h> dispatch_semaphore_t sema = dispatch_semaphore_create(0); NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://api.logsnag.com/v1/log"] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10.0]; NSDictionary *headers = @{ @"Content-Type": @"application/json", @"Authorization": @"Bearer YOUR_API_TOKEN" }; [request setAllHTTPHeaderFields:headers]; NSData *postData = [[NSData alloc] initWithData:[@"{\"project\":\"my-saas\",\"channel\":\"status\",\"event\":\"High Memory Usage\",\"description\":\"Memory usage has exceeded the threshold.\",\"icon\":\"🚨\",\"notify\":true}" dataUsingEncoding:NSUTF8StringEncoding]]; [request setHTTPBody:postData]; [request setHTTPMethod:@"POST"]; NSURLSession *session = [NSURLSession sharedSession]; NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { if (error) { NSLog(@"%@", error); dispatch_semaphore_signal(sema); } else { NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response; NSError *parseError = nil; NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:&parseError]; NSLog(@"%@",responseDictionary); dispatch_semaphore_signal(sema); } }]; [dataTask resume]; dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
Objective-C integration details
LogSnag is a powerful and flexible event tracking tool that works surprisingly well with Objective-C applications. It provides powerful features such as real-time event tracking, cross-platform push notifications, user and product journeys, charts and analytics, and more.
Connect LogSnag to your Objective-C application in minutes and start tracking events in real-time. LogSnag provides a generous free plan to get you started with event tracking. You can also check out our pricing page to see our paid plans. So please give us a try and let us know what you think!
Other use-cases for LogSnag
- Monitor your CI/CD build status for your Objective-C application
- Monitor your CPU usage in your Objective-C application
- Monitor when database goes down in your Objective-C application
- Monitor high disk usage in your Objective-C application
- Monitor when a user changes their email address in your Objective-C application
- Monitor failed logins in your Objective-C application
- Monitor failed payments for your Objective-C application
- Monitor MySQL downtime in your Objective-C application
- Monitor when a new feature is used in your Objective-C application
- Monitor your Postgres downtime in your Objective-C application
- Monitor Redis downtime in your Objective-C application
- Monitor suspicious activity in your Objective-C application
- Monitor when a user exceeds the usage limit for your Objective-C service
- Monitor when a user is being rate limited in your Objective-C application
- Get a notification when your Objective-C code is done executing
- Send push notifications to your phone or desktop using Objective-C
- Track canceled subscriptions in your Objective-C application
- Track your Objective-C cron jobs
- Track when a file is uploaded to your Objective-C application
- Track when a form is submitted to your Objective-C application
- Track payment events via Objective-C
- Track user sign in events in Objective-C
- Track user signup events via Objective-C
- Track waitlist signup events via Objective-C