Resolved Why is my app taking up so much memory (>12MB)?

Discussion in 'iOS Programming' started by tsuru, Mar 11, 2012.

  1. tsuru, Mar 11, 2012
    Last edited: Mar 17, 2012

    tsuru macrumors member

    Dec 14, 2008
    My app consists of an UIImageView that can hold an image from the photo library and some overlay controls for applying B&W, sepia, and enhance image effects using the NYXImagesKit library. When I select an image from the photo library I display it on the UIImageView and save the photo as a PNG image file to the app's Documents directory for persistence. Whenever I apply an effect to the image, I write that image with the effect applied as an additional PNG file (alongside the original) to the Documents directory. My problem is that when I click the controls to apply the image filters, the app uses lots of memory (above 12MB) and eventually crashes.

    The app is built using ARC so theoretically memory leaks should be fairly well taken care of, so I'm guessing it's my actual way of adding effects that's inefficient and eating up resources. If any of you are seasoned programmers, could you take a look at my code and point out what's causing the huge memory usage? If you could that would be absolutely wonderful.

    Instructions for the app: double-tap to reveal the overlay image effects controls and tap once to hide them.

    Attached Files:

  2. tsuru thread starter macrumors member

    Dec 14, 2008

    In my original code, I applied image effects using the library NYXImagesKit and then saved those modified images as PNG files into my app's Documents directory using:

    [UIImagePNGRepresentation(image) writeToFile:path atomically:YES];
    I was making these file writes fairly frequently, so I tried switching the file saving method to the one supplied in NYXImagesKit:

    [image saveToPath:path type:NYXImageTypePNG backgroundFillColor:nil];
    Though still not instant, this change cut down on memory usage and speeded things up sufficiently so that after adding an activity indicator during image processing, the app's responsiveness was satisfactory.

Share This Page